Part-DB-server/assets
Sebastian Almberg d73bc42362 Add a component value calculator & image generator
Adds a "Value calculator" tool (Tools menu) that decodes/encodes the value of
common components and generates a clean SVG picture you can attach to a part —
handy for assortments imported with blank thumbnails and sparse data.

Calculator tabs (bidirectional decode <-> encode), each drawing the part to the
selected package with a collapsible appearance panel and an "attach to part"
action (optionally as the master picture):
- Resistor: 4/5/6-band colour code
- Capacitor: value <-> 3-digit code <-> tolerance
- SMD resistor: value <-> 3-digit / 4-digit / EIA-96 code
- Inductor: colour-band code
- SMD inductor: value <-> uH code

Bulk "Generate component images" parts-table action:
- Classifies each selected part (resistor / capacitor / inductor / diode / LED,
  THT or SMD) with ComponentValueGuesser and detects value, voltage, tolerance,
  power, ppm, pitch, diameter, colour, SMD package and marking from the name,
  description and parameters.
- Renders a preview per part, lets you tweak appearance, and attaches the images
  in one go; can also write matching KiCad symbol/footprint/reference-prefix EDA
  fields.

Backend: ComponentValueGuesser (classification + detection + EDA suggestion),
GeneratedImageAttachmentHelper (stores the SVG through the existing attachment
pipeline, so it is sanitised on save), two POST endpoints on PartController
(generate_image, set_eda) guarded by `edit` + CSRF, a new `@tools.value_calculator`
permission, a Tools-tree entry and docs. All drawing is client-side in a Stimulus
controller; the un-sanitised live preview escapes part-derived text and validates
colours as defence-in-depth.

Tests: unit tests for ComponentValueGuesser and functional tests for the
endpoints, including permission and CSRF enforcement and the persisted side
effects.
2026-07-30 17:49:18 +02:00
..
ckeditor Fixed english translation for placeholder plugin and use more modern translation system 2025-10-17 17:57:34 +02:00
commands Enhance KiCad integration: API v2, batch EDA editing, field export control (#1241) 2026-03-01 22:10:13 +01:00
controllers Add a component value calculator & image generator 2026-07-30 17:49:18 +02:00
css Moved alerts and dialogs from unsupported bootbox to Sweetalert2 library 2026-06-21 14:21:01 +02:00
fonts/dompdf Added GNU unifont as fallback font for labels with CJK characters 2023-07-02 03:26:56 +02:00
helpers Translate Swal buttons 2026-06-21 15:10:39 +02:00
js Upgraded jquery to 4.0.0 2026-06-21 15:51:22 +02:00
styles Updated symfony recipes. 2021-01-03 20:54:47 +01:00
themes Added brite bootswatch theme 2026-06-21 16:10:38 +02:00
tomselect Added a "unsaved changed" warning dialog for part, entity edits and system settings 2026-05-25 21:29:10 +02:00
controllers.json Removed the deprecated symfony/ux-toggle-password package by replacing it by our own local versions 2025-08-30 21:57:57 +02:00
stimulus_bootstrap.js Updated stimulus recipe 2025-11-30 15:07:59 +01:00
translator.js Move frontend translations to separate domain to reduce bundle size (#1197) 2026-01-18 18:50:38 +01:00
tsconfig.json Added an basic implementation of bootstrap-treeview in typescript 2022-08-06 03:40:24 +02:00