Commit Graph

848 Commits

Author SHA1 Message Date
thgO.O
c824307647 fix: use DateTimeOffset to avoid timezone mismatch (#6832) 2025-07-07 10:14:42 +09:00
thgO.O
632d4433e0 feat: add Reserved Addresses view with filtering, pagination and labels (#6796)
* feat: add reservedAt metadata when address is generated from receive

* feat: add link to Reserved Addresses in wallet navigation

* feat: add ReservedAddressesViewModel with labels and reserved timestamp

* feat: implement Reserved Addresses view with filtering, pagination and label management

* feat: add GetReservedAddressesWithDetails with label and timestamp support

* feat: add ReservedAddresses endpoint

* test: add Reserved Addresses view test with label, filter and pagination

* test: use stable ID for filter input instead of placeholder

* Moving Reserved Addresses to Receive page

* feat: sync labels created via Label Manager using labelmanager:changed event

* refactor: optimize GetReservedAddressesWithDetails using direct SQL query

* feat: add link to filter Reserved Addresses by label from Wallet Labels view

* refactor: remove legacy selenium test

* test: add playwright tests with label filtering, pagination and redirect from Wallet Labels view

* refactor: optimize Reserved Addresses filtering with Set and Safe.Json

---------

Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
2025-07-04 09:30:23 +09:00
Nicolas Dorier
9b64e90394 Remove useless code (#6817)
* Remove unused code

* Obsolete SigningKey concept
2025-06-30 19:28:01 +09:00
thgO.O
e1d68cb084 feat(wallet): enhance Coin Selection with advanced filters and improved UX (#6755)
* feat: add timestamp on InputSelectionOption to enable date filtering

* feat(coin-selection): add page size options for 100, 250, and 500

* feat(coin-selection): add toggle all option

* feat(coin-selection): add filtering by amount and timestamp

* feat(coin-selection): add filter help section for advanced search options

* test: add tests for Coin Selection filters and select all

* refactor: remove unnecessary variable

* feat(coin-selection): enable copy-to-clipboard for filter examples

* refactor(coin-selection): separate sort and select-all controls into distinct layout blocks

* refactor(coin-selection): align selection logic with existing DOM-based approach

* test: refactor CanUseCoinSelection and CanUseCoinSelectionFilters

* test(coin-selection): replace magic numbers and delays with constants and Eventually

* refactor(coin-selection): improve select all performance with specific jQuery selector

* test(coin-selection): improve select all test with eventually and Equal

* Monoscaped font and right aligning for easier amounts view

* fix: coin selection toggling no longer unchecks unrelated inputs

* refactor(coin-selection): ensure UTXO date filters use proper Date comparison

* feat: add text-translate attributes for available filters section

* test: make Select All checkbox interaction more resilient to race conditions

---------

Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
2025-06-13 15:50:57 +09:00
Nicolas Dorier
49ab3b22a4 Simplify code (#6761) 2025-06-02 16:06:32 +09:00
Nicolas Dorier
932d313dee Can apply tax rates to PoS items (#6724) 2025-05-19 10:35:46 +09:00
Nicolas Dorier
1e79730c6e Implement store templates (#6704)
* Implement store templates

* Use the template for the default rate rules

* Polish messages

* Do not show exchange selection if template has a script
2025-05-09 15:58:24 +09:00
nicolas.dorier
9dc1aeda72 [Feature] Can configure fallback rates 2025-05-08 19:05:55 +09:00
Nicolas Dorier
2f26979ed7 Refactor vault (#6678)
* Use Blazor for the Vault code

* Put elements in different file

* Controller abstraction

* Break into VaultElement
2025-04-21 17:09:46 +09:00
rockstardev
c3998fdf34 Addressing PR review issues 2025-04-16 10:49:08 +09:00
rockstardev
d2debaa842 Adding Reference Number to Payment Requests 2025-04-16 09:39:29 +09:00
Nicolas Dorier
ce83e4d96d Fix: PaymentRequests created via API never expires (#6657) 2025-04-08 14:17:31 +09:00
nicolas.dorier
c3c6473e35 Disable cold wallet creation by default 2025-03-13 19:23:23 +09:00
nicolas.dorier
2911771f19 Feature: RBF and UX improvement to fee bumping 2025-03-11 17:44:18 +09:00
rockstardev
9dcf8d3251 Display fiat amount previews in Transaction Details page (#6610)
* Code cleanup

* Preparing model to include data needed for fiat display

* Displaying fiat amount and allowing switching between it and BTC

* Restoring parts removed by vibe coding

* Making ToFiatAmount method work for in wider variety of cases

* Tweaks for display and negative values

* Calculating amounts on serverside and simplifying

* Fix warnings

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2025-03-08 21:33:19 +09:00
rockstardev
a7e3cbb105 Adding endpoint to set server email settings (#6601)
* Adding endpoint in Greenfield to allow server email settings

* Adding related swagger file

* Refactoring EmailSettingsData to be more readable

* Adding server email masking

* Adding tests

* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.serveremail.json

Co-authored-by: d11n <mail@dennisreimann.de>

* Masking smtp server email returned over greenfield api and test

* Retaining password if password mask is used

* Remove magic string *****

* Flatten request for server's settings. Fix bug on shared setting instances

* Remove useless doc

* Simplify code

* Fix Store Email settings page

---------

Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2025-02-27 15:59:17 +09:00
nicolas.dorier
c37584328b Refactor: Remove cshtml duplication for back/url buttons in wizards 2025-02-07 16:57:50 +09:00
Andrew Camilleri
b797cc9af8 Multisig/watchonly wallet transaction creation flow proof of concept (#5743) 2024-12-10 21:56:52 +09:00
d11n
392ec623c0 Refactoring: Remove StoreData object from view models (#6363) 2024-11-07 08:58:47 +09:00
Andrew Camilleri
373b90e3b5 Liquid fixes (#6340)
make sure link provider is per payment method of liquid assets. Also remove ETB as it has been unused. Also hide the send button as it is not supported thrrough BTCPay
2024-10-29 23:43:37 +09:00
d11n
a962e60de9 More Translations (#6318)
* Store selector

* Footer

* Notifications

* Checkout Appearance

* Users list

* Forms

* Emails

* Pay Button

* Edit Dictionary

* Remove newlines, fix typos

* Forms

* Pull payments and payouts

* Various pages

* Use local docs link

* Fix

* Even more translations

* Fixes #6325

* Account pages

* Notifications

* Placeholders

* Various pages and components

* Add more
2024-10-25 22:48:53 +09:00
Nicolas Dorier
cc0ea0b3f8 Refactor payouts processing (#6314) 2024-10-19 21:33:34 +09:00
d11n
77fba4aee3 Add more translations (#6302)
* Newlines

* Dashboard

* Add more translations

* Moar

* Remove &nbsp; from translated texts

* Dictionary controller translations

* Batch 1 of controller updates

* Batch 2 of controller updates

* Component translations

* Batch 3 of controller updates

* Fixes
2024-10-17 22:51:40 +09:00
nicolas.dorier
be429c527c Cleanup useless code 2024-10-16 16:25:16 +09:00
nicolas.dorier
68f24e47cd Rename more legacy fields 2024-10-07 21:22:03 +09:00
nicolas.dorier
968223a953 Rename PaymentModel to CheckoutModel 2024-10-07 19:58:08 +09:00
nicolas.dorier
2f287874e3 Rename legacy fields 2024-10-07 19:51:50 +09:00
nicolas.dorier
c35e7406cd Cleanup AvailableCrypto from the model 2024-10-07 19:15:40 +09:00
nicolas.dorier
34b2cca492 Simplify extension of payments extensions 2024-10-07 18:37:38 +09:00
nicolas.dorier
e1bfc04451 Move checkout registration to the UI Extension 2024-10-07 17:38:02 +09:00
nicolas.dorier
b744fd6167 Allow payment methods to modify all the payment model 2024-10-07 14:53:21 +09:00
Nicolas Dorier
5704919b3a BlockExplorer links should be using payment method ids (#6273) 2024-10-04 16:58:13 +09:00
d11n
82620ee327 Move wallet payment settings back to store settings (#6251)
Intermediate solution, until we implement these settings on the payment method level. Closes #6237.
2024-09-30 19:13:51 +09:00
Nicolas Dorier
363b60385b Renaming various properties in the Payouts API (#6246)
* Rename Payouts Currency/OriginalCurrency

* Rename Payout Processor PayoutMethodIds

* Rename paymentMethods to payoutMethodIds

* Rename payoutMethodIds to payoutMethods
2024-09-26 11:25:45 +09:00
d11n
7348a6a62f Store Branding: Apply brand color to backend as well (#5992)
* Store Branding: Apply brand color to backend as well

Closes #5990.

* Add adjustments for different theme scenarios

* Add description text

* Make it optional to apply the brand color to the backend

* Toggle color fixes
2024-09-13 21:39:21 +09:00
d11n
f3d485da53 Invitation process improvements (#6188)
* Server: Make sending email optional when adding user

Closes #6158.

* Generate custom invite token and store it in user blob

Closes btcpayserver/app/#46.

* QR code for user invite

Closes #6157.

* Text fix
2024-09-12 12:31:57 +09:00
Nicolas Dorier
7de05700e9 Edit dictionary should be in JSON format (#6203) 2024-09-09 11:25:36 +09:00
Nicolas Dorier
1dd37c5020 Refactor Payouts and PullPayments DB models (#6173) 2024-08-28 18:52:08 +09:00
Nicolas Dorier
07f3301e32 Remove unused code (#6152) 2024-08-22 18:52:41 +09:00
d11n
7878a4365c Dictionary additions (#6120)
* Cleanups

* Add text entries for dictionary pages

* Wording: Keep Clone title consistent with Payment Request cloning

* Dictionaries: List used one first; badge for marking In use
2024-07-26 08:46:17 +09:00
Nicolas Dorier
94760792af Add parts of the UI to translate (#6119) 2024-07-25 22:46:02 +09:00
Nicolas Dorier
ca4abcb497 Allow translations of BTCPay Server Backend by admins (#5662) 2024-07-24 20:16:20 +09:00
d11n
ddb07a7ba9 Receipt page fixes (#6079)
* Receipt: Don't assign empty values to data; hide present empty values
* Receipt: Use same URL on "Return to Store" link as on invoice
2024-07-09 16:59:36 +02:00
Chukwuleta Tobechi
e0a0406825 Improved Notifications List View (#6050, #3871) 2024-07-02 17:55:54 +09:00
d11n
bf66b54c9a User: Add name and image URL (#6008)
* User: Add name and image URL

More personalization options, prerequisite for btcpayserver/app#3.

Additionally:
- Remove ambigious and read-only username from manage view.
- Improve email verification conditions and display.
- Greenfield: Update current user. Prerequisite for btcpayserver/app#13.

* Refactor UpdateCurrentUser

* Replace new columns by UserBlob

* Update email check and add test case for mailbox addresses

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2024-06-26 17:39:22 +09:00
Nicolas Dorier
7564c3c2bd Fix: Some valid taproot PSBT couldn't parsed and show better error message (Fix #5715) (#5993) 2024-05-21 10:52:55 +09:00
Nicolas Dorier
c134602cbd Remove Legacy Status from the code (#5982) 2024-05-15 07:49:53 +09:00
Nicolas Dorier
d96b066658 Recommended exchange to be resolved during Invoice Creation (#5976)
* Recommended Exchange Rate Selection during Invoice Creation

* Make Recommended exchanges pluginifiable
2024-05-13 22:29:42 +09:00
d11n
4c303d358b Branding updates for 2.0 (#5947)
* Remove deprecated CSS options

Closes #5945.

* Greenfield: Add brandColor to store APIs

Closes #5946.

* Migrate file IDs to URLs

Closes #5953.

* Greenfield: Add CSS and logo URL to store settings API

Closes #5945.

* Add migration test

* Store and Server branding can reference file's via fileid:ID

* Add PaymentSoundUrl to Store API

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2024-05-09 09:18:02 +09:00
d11n
a8e16b0ba6 Wallet UI quick wins (#5851)
- Unify single/multiple inputs display
- Destination: Move labels above amount
- Coin Selection: Add sorting by amount and confirmations, add page size. Closes #5850
- Move PSBT and BIP21 buttons up to input related button group
- Turn checkboxes in Advanced Settings into toggles
- Improve spacings and button groups
2024-05-06 14:40:17 +09:00