* POS: Create Invoice action optionally responds with JSON
We adapted this action, which is full of custom POS logic, for the app to avoid creating a separate API endpoint.
* Add test and improve error handling
Fixes a regression introduced with d24adda700: The negation for the `_rateLimitService.Throttle` result was removed with that commit, which lead to all unauthenticated request getting throttled. (It was correctly implemented in #6415.
Fixesbtcpayserver/app#131.
* Refactoring: Move AppItem to Client lib and use the class for item list
This makes it available for the app, which would otherwise have to replicate the model. Also uses the proper class for the item/perk list of the app models.
* Remove unused app item payment methods property
* Do not ignore nullable values in JSON
* Revert to use Newtonsoft types
* 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
Validates missing and duplicate IDs on the edit actions and when creating/updating apps via the API.
Fails gracefully by excluding existing items without ID or with duplicate ID for the rest of the cases.
Fixes#6227.
* POS: Fix accounting for manually entered keypad amounts
For keypad orders where there are products AND manual amount entries, we didn't account for the latter.
Fixes#6168.
* Adjust wording: "Manual entry" becomes "Custom Amount"
* Greenfield: Refactor app endpoints
- Do not change unset data
- Clean up difference between request (template) and data (items/perks)
- Add missing properties (form id and custom tip percentage)
- Update docs
* Revert ToSettings changes in GreenfieldAppsController
* 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>
* Add admin option to show item list for keypad view
* Refactor common POS Vue mixin
* Add item list to POS keypad
* Add recent transactions to cart
* Keypad: Pass tip and discount as cart does
* Keypad and cart tests
* Improve offcanvas button
---------
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
* Apps: Make app name the default title
Successor of #5762 with a way simpler approach. Allows the user-facing title to be set, but defaults it to the app name instead of "Tea shop".
* Test fixes
When a POS has a form, which results in an error state, the store branding property was not set. This adds the missing property and also does not render the store branding partial, in case the model property isn't present.
Fixes#5655.
* 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
* Improve receipt info display
Displays the info in correct order and adds optional info if tip was given with a percentage.
* Test fix
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
* Fix constant fields being editable on UI
* fix redirect to checkout if invoice is settled (redirect to receipt instead)
* enhance: make mirror field type able to map values
* Introduce invoice amount adjustment fields for form
* Integrate invoice amount adjustment fields for form on pos
* Support mirror in editor
* Indicate when special field names are used
* polsih mirror view and name suggestions for fields
* clarify
* hide hidden field from ui
* Minor adjustmentts
* Improve mirror field editing
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Add grouping feature to the PoS with Cart
* Improve UI
* Rename groups to categories
* Make it easier to select categories of the items
* Refactor TemplateEditor, use TomSelect for categories
* Prevent Vue code insertion
* Prevent empty categories
* Add label ids
* Add test case
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Remove Order ID link
* Add separate print version for receipt
* Fix POS number handling and add keypad test
Fixes#5056.
* Add formatting function
* Remove OrderUrl for POS, bring back order link for receipt
* Update BTCPayServer/Plugins/PointOfSale/Controllers/UIPointOfSaleController.cs