Part-DB-server/templates
Sebastian Almberg ce2b7d11a9
Add Quick Apply and batch update to bulk info provider import (#1316)
* Add Quick Apply and Apply All buttons to bulk info provider import

Adds the ability to apply provider search results to parts directly
from the bulk import step 2 page without navigating to individual
part edit forms. Includes per-result Quick Apply buttons and an
Apply All button for batch operations.

* Add navigation buttons and completion banner to bulk import step2

Adds Back to Jobs / Back to Parts buttons at the top of the page
and a success banner when the job is completed, so users aren't
stuck on the page after applying all parts.

* Highlight top search result and remove skip reason prompt

- Highlight the recommended/top priority result row with table-success class
- Add "Top" badge to the recommended Quick Apply button
- Use outline style for non-top Quick Apply buttons to differentiate
- Remove the annoying "reason for skipping" prompt popup

* Fix 500 error when field mapping has null field or no search results

- Skip field mappings with null/empty field values in convertFieldMappingsToDto
- Return empty DTO instead of throwing when no search results found
- Remove unnecessary try/catch workaround in researchPart

* Fix PHPStan error: remove redundant null check on BulkSearchResponseDTO

* Improve bulk import UI: split active/history jobs, fix text visibility, add match highlighting

- Split manage page into Active Jobs and History sections
- Fix source keyword text color (remove text-muted for better visibility)
- Add exact match indicators: green check badge when name or MPN matches
- Add translation keys for new UI elements

* Fix spinning icon, text visibility, auto-priority, and SPN match highlighting

- Replace spinning icon with static icon on Active Jobs header
- Match highlighting now checks source keyword against name, MPN, AND provider ID (SPN)
- Show green "Match" badge in source field column when any field matches 100%
- Auto-increment priority when adding new field mapping rows
- Fix text-muted visibility issues on table-success background

* Fix broken images and improve match highlighting consistency

- Hide broken external provider images with onerror fallback
- Make source keyword text green when any match is detected
- All matched fields (name, MPN, SPN, or any source keyword) show green text

* Fix TypeError in LCSCProvider when keyword is numeric string

PHP auto-casts numeric string array keys to int. When a search keyword
is a pure number (e.g., a part number like "12345"), the foreach loop
passes an int to processSearchResponse() which expects string. Cast
keyword to string explicitly.

* Clean up stale pending jobs and add job ID to display

- Auto-delete pending jobs with 0 results (from failed searches/500 errors)
- Show job ID (#N) in manage page and step2 to distinguish identical jobs
- Move timestamp to subtitle line on manage page for cleaner layout

* Fix tests to match updated bulk search behavior (no more RuntimeException)

The bulk search service now returns empty response DTOs instead of
throwing RuntimeException when no results are found. Updated tests
to use assertFalse(hasAnyResults()) instead of catching exceptions.

* Add comprehensive test coverage for bulk import controller

Covers Quick Apply, Apply All, delete, stop, mark completed/skipped/pending,
manage page active/history split, stale job cleanup, research endpoints,
and various error paths. Increases patch coverage significantly.

* Fix duplicate test method names in bulk import tests

* Fix last duplicate test method name (testQuickApplyWithNoSearchResults)

* Fixed translation key in translation messages

* Moved table rendering logic into macro

* fixed visual glitch with button success outline

* Use native httpfoundation method to convert json to an array

* Show a more user friendly error message, when

* Allow to automatically create new manufacturers within quick apply

---------

Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
2026-05-04 21:56:18 +02:00
..
admin Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
attachments Allow file downloads and modals in HTML sandbox 2026-02-24 22:57:48 +01:00
bundles/TwigBundle/Exception Add Docker update support via Watchtower integration (#1330) 2026-05-03 23:00:31 +02:00
components Enhance KiCad integration: API v2, batch EDA editing, field export control (#1241) 2026-03-01 22:10:13 +01:00
form Make form layout better at wide screens & Make horizontal form column layout configurable via global Twig variables (#1293) 2026-03-07 16:14:58 +01:00
info_providers Add Quick Apply and batch update to bulk info provider import (#1316) 2026-05-04 21:56:18 +02:00
label_system Make form layout better at wide screens & Make horizontal form column layout configurable via global Twig variables (#1293) 2026-03-07 16:14:58 +01:00
log_system Make form layout better at wide screens & Make horizontal form column layout configurable via global Twig variables (#1293) 2026-03-07 16:14:58 +01:00
mail Use new settings system to configure the instance Name and homepage banner 2024-05-20 21:14:32 +02:00
parts Fixed 500 error with displaying part prices, when a user has a currency preference different of base currency, and there is no conversion rate known for it 2026-03-15 22:02:10 +01:00
projects Add price columns to project BOM table and build price summary (#1345) 2026-04-15 22:13:07 +02:00
security add data-tube=false to SAML auth button (#1308) 2026-03-11 11:28:09 +01:00
settings Add custom KiCad autocomplete list settings (#1342) 2026-04-15 00:01:00 +02:00
tools Merge branch 'master' into settings-bundle 2025-01-17 22:06:18 +01:00
users Make form layout better at wide screens & Make horizontal form column layout configurable via global Twig variables (#1293) 2026-03-07 16:14:58 +01:00
_navbar.html.twig Allow to select which method should be used to in "Create from URL feature" 2026-05-02 23:23:20 +02:00
_sidebar.html.twig Allow to configure sidebar menu via the new settings system 2024-08-07 00:41:06 +02:00
_toast.html.twig Improved styling of a info level flash toast in darkmode 2023-07-03 22:01:39 +02:00
_toast_container.html.twig Fixed toast position on large screens 2023-02-06 22:47:41 +01:00
_turbo_control.html.twig Fixed flash messages in admin pages 2026-03-04 23:24:29 +01:00
attachment_list.html.twig Make form layout better at wide screens & Make horizontal form column layout configurable via global Twig variables (#1293) 2026-03-07 16:14:58 +01:00
base.html.twig Navigate only the content frame when submitting the global barcode scan label 2026-03-01 16:56:47 +01:00
helper.twig Add manual backup creation and delete buttons to Update Manager (#1255) 2026-03-07 19:31:00 +01:00
homepage.html.twig Allow to hide the version number on homepage 2025-09-07 19:43:23 +02:00
main_card.html.twig Added a very basic import dialog for Parts 2023-03-12 19:53:55 +01:00
vars.macro.twig Fixed old usages of base_currency 2024-08-03 23:19:09 +02:00