* 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>
* Set store context in cookie
* Fix page id usages in view
* Move Pay Button to nav
* Move integrations to plugins nav
* Store switch links to wallet if present
* Test fixes
* Nav fixes
* Fix altcoin view
* Main nav updates
* Wallet setttings nav update
* Move storeId cookie fallback to cookie auth handler
* View fixes
* Test fixes
* Fix profile check
* Rename integrations nav extension point to store-integrations-nav-list
* Allow strings for Active page/category for plugins
* Make invoice list filter based on store context
* Do not set context if we are running authorizer through tag helper
* Fix test and unfiltered invoices
* Add permission helper for wallet links
* Add sanity checks for payment requests and invoices
* Store context in home controller
* Fix PayjoinViaUI test
* Store context for notifications
* Minor UI improvements
* Store context for userstores and vault controller
* Bring back integrations page
* Rename notifications nav pages file
* Fix user stores controller policies
* Controller policy fixes from code review
* CookieAuthHandler: Simplify CanViewInvoices case
* Revert "Controller policy fixes from code review"
This reverts commit 97e8b8379c.
* Simplify LayoutSimple
* Fix CanViewInvoices condition
Co-authored-by: Kukks <evilkukka@gmail.com>
* Use Outstanding amount for shopify order invoices
* consider shopify order may have multiple transactions
* Use presentment currency not just currency
fixes#2683
* 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>
* Decouple Shopify from Store
* Decouple shopify from store blob
* Update BTCPayServer.Tests.csproj
* Make sure shopify obj is set
* make shopify a system plugin
* Plugins flexibility PR
* Makes the BTCPayServerOptions.LoadArgs async to support Plugin hooks and actions
* relax the private set modifiers in the BTCPayNetwork
* Separate IPluginHookService from PluginService to reduce dependencies on DI
* fix some small bugs around image path
* Fix bug with new dbreeze migration where data dir was incorrect
* Update BTCPayServer/Plugins/PluginHookService.cs
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
* Update BTCPayServer/Plugins/PluginHookService.cs
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
* More Options refactoring
Continues refactoring config classes to use the propert Options pattern where possible.
DataDirectories and DatabaseOptions are now configured the Options pattern and the BTCPayOptions is now moved alongside the other config setup
* Move COnfigure logic for Options to the Startup
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
Almost an exact replica of https://developer.wordpress.org/plugins/hooks/
This will allow plugins to extend specific points in business logic, such as validation, invoice payload changes, etc
* Plugins: Load plugins by order, aesthetic plugin dependency system
Introduces plugins loading in order of installation, BTCPay itself shows up as a system plugin, and that plugins can define other plugins as dependencies.
* use a proper type for plugin dependencies
* rebase fixes
* message when cannot install
This allows external integrations ( btcpay docker fragments) to highlight specific plugins as recommended to be installed. Also moved the remote option to a config option instead of a url query param to avoid messy situations where users could get deceived with a generated url. The dockerfiles also have an additional csproj to build and the plugin dir was renamed correctly from extensions to plugins
* 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