Jan Böhmer
a1fd3199d6
Render HTML as plain text via attachment_view controller
...
This makes it consistent with the public paths and ensures all HTML is only rendered in our sandbox
2026-02-24 22:48:18 +01:00
Jan Böhmer
4a5cc454ce
Show HTML files in the HTML sandbox if enabled
2026-02-24 22:40:23 +01:00
Jan Böhmer
63dd344c02
Added basic functionality for an HTML sandbox for relative safely rendering HTML attachments
...
Fixed #1150
2026-02-24 22:27:33 +01:00
Jan Böhmer
a7a1026f9b
Throw an exception if canopy does not return a product
2026-02-24 20:30:39 +01:00
Jan Böhmer
a67f106bc6
Fixed tests
Build assets artifact / Build assets artifact (push) Has been cancelled
Docker Image Build / build (linux/amd64, amd64, ubuntu-latest) (push) Has been cancelled
Docker Image Build / build (linux/arm/v7, armv7, ubuntu-24.04-arm) (push) Has been cancelled
Docker Image Build / build (linux/arm64, arm64, ubuntu-24.04-arm) (push) Has been cancelled
Docker Image Build (FrankenPHP) / build (linux/amd64, amd64, ubuntu-latest) (push) Has been cancelled
Docker Image Build (FrankenPHP) / build (linux/arm/v7, armv7, ubuntu-24.04-arm) (push) Has been cancelled
Docker Image Build (FrankenPHP) / build (linux/arm64, arm64, ubuntu-24.04-arm) (push) Has been cancelled
Static analysis / Static analysis (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Has been cancelled
Docker Image Build / merge (push) Has been cancelled
Docker Image Build (FrankenPHP) / merge (push) Has been cancelled
2026-02-22 23:50:32 +01:00
Jan Böhmer
300382f6e3
Make Canopy provider configurable via UI
2026-02-22 23:38:56 +01:00
Jan Böhmer
0b9b2cbf58
Allow to read amazon labels for part retrieval and creation
2026-02-22 23:16:39 +01:00
Jan Böhmer
87919eb445
Allow to cache amazon search results to reduce API calls
2026-02-22 22:29:44 +01:00
Jan Böhmer
258289482b
Increase debug detail expiration time to 10s to avoid double retrieval in one request
2026-02-22 22:12:50 +01:00
Jan Böhmer
aa9436a19b
Fixed conrad provider if part does not have manuals
2026-02-22 22:09:23 +01:00
Jan Böhmer
c6cbc17c66
Merge branch 'master' into amazon_info_provider
2026-02-22 21:58:36 +01:00
Jan Böhmer
f124fa0023
Made BarcodeScanResult classes readonly
2026-02-22 21:28:58 +01:00
swdee
c29605ef23
Label Scanner Enhancements: LCSC barcode, create part, augmented scanning ( #1194 )
...
* added handling of LCSC barcode decoding and part loading on Label Scanner
* when a part is scanned and not found, the scanner did not redraw so scanning subsequent parts was not possible without reloading the browser page. fixed the barcode scanner initialization and shutdown so it redraws properly after part not found
* added redirection to part page on successful scan of lcsc, digikey, and mouser barcodes. added create part button if part does not exist in database
* added augmented mode to label scanner to use vendor labels for part lookup to see part storage location quickly
* shrink camera height on mobile so augmented information can been viewed onscreen
* handle momentarily bad reads from qrcode library
* removed augmented checkbox and combined functionality into info mode checkbox. changed barcode scanner to use XHR callback for barcode decoding to avoid problems with form submission and camera caused by page reloaded when part not found.
* fix scanning of part-db barcodes to redirect to storage location or part lots. made scan result messages conditional for parts or other non-part barcodes
* fix static analysis errors
* added unit tests for meeting code coverage report
* fix @MayNiklas reported bug: when manually submitting the form (from a barcode scan or manual input) redirect to Create New part screen for the decoded information instead of showing 'Format Unknown' popup error message
* fix @d-buchmann bug: clear 'scan-augmented-result' field upon rescan of new barcode
* fix @d-buchmann bug: after scanning in Info mode, if Info mode is turned off when scanning a part that did not exist, it now redirects user to create part page
* fix @d-buchmann bug: make barcode decode table 100% width of page
* fix bug with manual form submission where a part does not exist but decodes properly which causes the camera to not redraw on page reload due to unclean shutdown. this is an existing bug in the scanner interface.
steps to produce the issue:
- have camera active
- put in code in Input
- info mode ticked
- click submit button
on page reload the camera does not reactivate
* fixed translation messages
* Use symfony native functions to generate the routes for part creation
* Use native request functions for request param parsing
* Refactored LCSCBarcocdeScanResult to be an value object like the other Barcode results
* Added test for LCSCBarcodeScanResult
* Fixed exception when submitting form for info mode
* Made BarcodeSourceType a backed enum, so that it can be used in Request::getEnum()
* Moved database queries from BarcodeRedirector to PartRepository
* Fixed modeEnum parsing
* Fixed test errors
* Refactored BarcodeRedirector logic to be more universal
* Fixed BarcodeScanResultHandler test
* Refactored BarcodeScanResultHandler to be able to resolve arbitary entities from scans
* Moved barcode to info provider logic from Controller to BarcodeScanResultHandler service
* Improved augmentented info styling and allow to use it with normal form submit too
* Correctly handle nullable infoURL in ScanController
* Replaced the custom controller for fragment replacements with symfony streams
This does not require a complete new endpoint
* Removed data-lookup-url attribute from scan read box
* Removed unused translations
* Added basic info block when an storage location was found for an barcode
* Fixed phpstan issues
* Fixed tests
* Fixed part image for mobile view
* Added more tests for BarcodeScanResultHandler service
* Fixed tests
---------
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2026-02-22 21:26:44 +01:00
Jan Böhmer
3ffb5e8278
Implemented Amazon info provider using canopy
2026-02-16 22:05:49 +01:00
Jan Böhmer
8ad3c2e612
Allow stocktake date to be empty on part lot form
...
Fixes issue #1250
2026-02-16 18:25:41 +01:00
Jan Böhmer
6afca44897
Use xxh3 hashes instead of encoding for info provider cache keys
2026-02-15 22:19:44 +01:00
Jan Böhmer
f024c4b09e
Merge branch 'autofocus-fields'
2026-02-15 21:37:12 +01:00
Jan Böhmer
8e0fcdb73b
Added some part datatables optimization
2026-02-15 20:07:38 +01:00
Jan Böhmer
e19929249f
Mark parts datatables query as read only for some memory optimizations
2026-02-15 19:30:53 +01:00
Jan Böhmer
f6764170e1
Fixed phpstan issues
2026-02-15 16:16:15 +01:00
Niklas
1641708508
Added API endpoint for generating labels ( #1234 )
...
* init API endpoint for generating labels
* Improved API docs for label endpoint
* Improved LabelGenerationProcessor
---------
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2026-02-15 16:03:07 +01:00
d-buchmann
97a74815d3
Fix fallback filename ( #1238 )
...
Build assets artifact / Build assets artifact (push) Waiting to run
Docker Image Build / docker (push) Waiting to run
Docker Image Build (FrankenPHP) / docker (push) Waiting to run
Static analysis / Static analysis (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Waiting to run
Fixes #1231 .
Modify tests to account for this case.
2026-02-15 14:41:25 +01:00
Jan Böhmer
5e9f7a11a3
Catch more errors of twig labels
2026-02-15 14:11:31 +01:00
Jan Böhmer
1c6bf3f472
Allow more useful functions in twig labels
2026-02-15 14:07:50 +01:00
Jan Böhmer
aed2652f1d
Added functions to retrieve associated parts of an element within twig labels
...
This fixes #1239
2026-02-15 13:52:56 +01:00
Jan Böhmer
233c5e8550
Fixed phpunit and phpstan issues
Build assets artifact / Build assets artifact (push) Waiting to run
Docker Image Build / docker (push) Waiting to run
Docker Image Build (FrankenPHP) / docker (push) Waiting to run
Static analysis / Static analysis (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Waiting to run
2026-02-15 00:49:12 +01:00
Jan Böhmer
6b83c772cc
Moved user twig functions requiring repo access to its own extension service
2026-02-15 00:28:40 +01:00
Jan Böhmer
1996db6a53
Moved remaining twig extensions to new attributes system
2026-02-15 00:23:30 +01:00
Jan Böhmer
f69b0889eb
Ran rector to convert some our twig extensions to use #[AsTwigXX] attributes
2026-02-14 23:53:31 +01:00
Jan Böhmer
097041a43a
Ran rector
2026-02-14 23:33:40 +01:00
Jan Böhmer
7a83581597
Merge branch 'gtin'
2026-02-14 22:12:39 +01:00
buchmann
47c0d78985
only autofocus if new
2026-02-11 14:26:36 +01:00
buchmann
76f0b05a09
Autofocus for frequently used input fields
...
Fixes #1157 .
- Focus `name` field on new part
- Focus `amount` on add/withdraw modal
- Focus first "number type" input on any newly added collectionType table row... (debatable)
It would be even more favorable if the user could configure if they want to use autofocus and/or for which fields/dialogs it should be enabled.
2026-02-11 14:10:05 +01:00
Jan Böhmer
35598df354
Automatically set the stocktake permission if a user can already add and withdraw from a lot
Build assets artifact / Build assets artifact (push) Has been cancelled
Docker Image Build / docker (push) Has been cancelled
Docker Image Build (FrankenPHP) / docker (push) Has been cancelled
Static analysis / Static analysis (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Has been cancelled
2026-02-10 23:24:40 +01:00
Jan Böhmer
d8fdaa9529
Added a modal to stocktake / set part lots amount from info page
2026-02-10 23:17:10 +01:00
Jan Böhmer
2f9601364e
Allow to set stocktake date for part lots
2026-02-10 22:23:54 +01:00
Jan Böhmer
e5231e29f2
Allow to set a global default if new orderdetails should contain VAT or not
Build assets artifact / Build assets artifact (push) Waiting to run
Docker Image Build / docker (push) Waiting to run
Docker Image Build (FrankenPHP) / docker (push) Waiting to run
Static analysis / Static analysis (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Waiting to run
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Waiting to run
2026-02-10 17:13:54 +01:00
Jan Böhmer
586375d921
Moved VAT include info from pricedetail to orderdetail level
...
That makes implementing the form easier
2026-02-10 16:53:41 +01:00
Marc
41252d8bb9
Implement URLHandlerInfoProviderInterface in BuerklinProvider ( #1235 )
...
Build assets artifact / Build assets artifact (push) Has been cancelled
Docker Image Build / docker (push) Has been cancelled
Docker Image Build (FrankenPHP) / docker (push) Has been cancelled
Static analysis / Static analysis (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, mysql) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, postgres) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.2, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.3, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.4, sqlite) (push) Has been cancelled
PHPUnit Tests / PHPUnit and coverage Test (PHP 8.5, sqlite) (push) Has been cancelled
* Implement URLHandlerInfoProviderInterface in BuerklinProvider
Added URL handling capabilities to BuerklinProvider.
* Refactor ID extraction logic in BuerklinProvider
* Add tests for BuerklinProvider URLHandlerInfoProviderInterface
* Revert "Refactor ID extraction logic in BuerklinProvider"
This reverts commit 5f65176636 .
* Exclude 'p' from valid ID return in BuerklinProvider
2026-02-10 15:26:26 +01:00
Jan Böhmer
5a47b15c97
Use the information from info provider whether prices includes VAT or not
2026-02-08 21:58:14 +01:00
Jan Böhmer
3bff5fa8bd
Allow to set if prices contain VAT or not in orderdetail
2026-02-08 21:54:34 +01:00
Jan Böhmer
f95e39748e
Fixed PHPstan issue
2026-02-08 19:37:44 +01:00
Jan Böhmer
90c82aab2e
Only show the created avatar attachment type for user attachments
2026-02-08 19:31:45 +01:00
Jan Böhmer
a4c2b8f885
Added the option to only show attachment types for certain element classes
2026-02-08 19:30:06 +01:00
Jan Böhmer
35e844dd7b
Allow to scan gtin barcodes and find parts via it
2026-02-08 16:06:01 +01:00
Jan Böhmer
a962e5e019
Allow to order and filter by GTIN in part tables
2026-02-08 15:51:39 +01:00
Jan Böhmer
1130f71075
Added ability to get GTINs for reichelt and Generic WebURL
2026-02-08 15:43:50 +01:00
Jan Böhmer
fd76ca12fc
Allow to import GTIN from info providers
2026-02-08 15:32:35 +01:00
Jan Böhmer
57c8368b5e
Allow to edit the GTIN property of a part and validate the GTIN
2026-02-08 14:44:56 +01:00
Jan Böhmer
7fd7697c02
Added GTIN fields and others to DB
2026-02-08 14:17:58 +01:00