From 4c54184f0e932b60610493a6d051167843501e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Mon, 27 Jul 2026 21:49:48 +0200 Subject: [PATCH 1/9] Fixed messages formatting --- translations/messages.en.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index e7a9f59f..3978c68a 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -13749,7 +13749,7 @@ Buerklin-API Authentication server: search.permit_wildcards.help If enabled, _ is treated as a wildcard for one character and % is treated as a wildcard for zero or more characters. - + From f3c2f4b913da9e730e18ee99e9665bd83f5405a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Mon, 27 Jul 2026 22:26:05 +0200 Subject: [PATCH 2/9] Fixed webauthn login --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 39341239..53a056f1 100644 --- a/composer.lock +++ b/composer.lock @@ -5172,16 +5172,16 @@ }, { "name": "jbtronics/2fa-webauthn", - "version": "v3.0.0", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/jbtronics/2fa-webauthn.git", - "reference": "542424bcc51f06932cbecfd7b75afbb5e107c9ce" + "reference": "9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jbtronics/2fa-webauthn/zipball/542424bcc51f06932cbecfd7b75afbb5e107c9ce", - "reference": "542424bcc51f06932cbecfd7b75afbb5e107c9ce", + "url": "https://api.github.com/repos/jbtronics/2fa-webauthn/zipball/9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22", + "reference": "9881f3ea8d3ba7a8d1afa9adc0339d92c90aff22", "shasum": "" }, "require": { @@ -5226,9 +5226,9 @@ ], "support": { "issues": "https://github.com/jbtronics/2fa-webauthn/issues", - "source": "https://github.com/jbtronics/2fa-webauthn/tree/v3.0.0" + "source": "https://github.com/jbtronics/2fa-webauthn/tree/v3.0.2" }, - "time": "2025-08-14T15:12:48+00:00" + "time": "2026-07-27T20:24:28+00:00" }, { "name": "jbtronics/dompdf-font-loader-bundle", From 0169c2d1fac4cb4f5d6cfb8d21fed0eea5d62051 Mon Sep 17 00:00:00 2001 From: Dant-hw Date: Mon, 27 Jul 2026 22:31:06 +0200 Subject: [PATCH 3/9] Add per-parameter "visible in symbol" flag for KiCad EDA export (#1444) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add per-parameter "visible in symbol" flag for KiCad EDA export Introduce a nullable tri-state eda_symbol_visibility on part parameters that drives the KiCad field's "visible" flag in the EDA HTTP-library API response. This is independent of the existing eda_visibility, which only controls whether the parameter is exported as a field at all. When the per-parameter flag is null, the new system default KiCadEDASettings::defaultParameterSymbolVisibility applies. Both default such that exported parameter fields keep their previous behavior ("visible": "False"), so the change is backward compatible. - Entity: eda_symbol_visibility column + accessors, with matching serialization groups and a multi-platform migration - Form: second TriStateCheckboxType, shown for part parameters only - KiCadHelper: resolve the flag (explicit, else system default) and pass it to createField() - Settings: defaultParameterSymbolVisibility (default false) - Templates: new eye-icon column in the specifications table - Translations (en) + tests Co-Authored-By: Claude Opus 4.8 (1M context) * Fixed message ids --------- Co-authored-by: Claude Opus 4.8 (1M context) Co-authored-by: Jan Böhmer --- migrations/Version20260713120000.php | 46 +++++++++++++++++++ src/Entity/Parameters/AbstractParameter.php | 23 ++++++++++ src/Form/ParameterType.php | 5 ++ src/Services/EDA/KiCadHelper.php | 4 +- .../MiscSettings/KiCadEDASettings.php | 7 +++ .../parts/edit/_specifications.html.twig | 1 + .../parts/edit/edit_form_styles.html.twig | 3 ++ tests/Services/EDA/KiCadHelperTest.php | 31 +++++++++++++ translations/messages.en.xlf | 18 ++++++++ 9 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 migrations/Version20260713120000.php diff --git a/migrations/Version20260713120000.php b/migrations/Version20260713120000.php new file mode 100644 index 00000000..d25ed18d --- /dev/null +++ b/migrations/Version20260713120000.php @@ -0,0 +1,46 @@ +addSql('ALTER TABLE parameters ADD eda_symbol_visibility TINYINT(1) DEFAULT NULL'); + } + + public function mySQLDown(Schema $schema): void + { + $this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility'); + } + + public function sqLiteUp(Schema $schema): void + { + $this->addSql('ALTER TABLE parameters ADD COLUMN eda_symbol_visibility BOOLEAN DEFAULT NULL'); + } + + public function sqLiteDown(Schema $schema): void + { + $this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility'); + } + + public function postgreSQLUp(Schema $schema): void + { + $this->addSql('ALTER TABLE parameters ADD eda_symbol_visibility BOOLEAN DEFAULT NULL'); + } + + public function postgreSQLDown(Schema $schema): void + { + $this->addSql('ALTER TABLE parameters DROP COLUMN eda_symbol_visibility'); + } +} diff --git a/src/Entity/Parameters/AbstractParameter.php b/src/Entity/Parameters/AbstractParameter.php index f47f2e82..48aa40bd 100644 --- a/src/Entity/Parameters/AbstractParameter.php +++ b/src/Entity/Parameters/AbstractParameter.php @@ -179,6 +179,14 @@ abstract class AbstractParameter extends AbstractNamedDBElement implements Uniqu #[ORM\Column(type: Types::BOOLEAN, nullable: true, options: ['default' => null])] protected ?bool $eda_visibility = null; + /** + * @var bool|null Whether the exported EDA field should be visible in the schematic symbol + * (sets the KiCad field's "visible" flag). Null means use system default. + */ + #[Groups(['full', 'parameter:read', 'parameter:write', 'import'])] + #[ORM\Column(type: Types::BOOLEAN, nullable: true, options: ['default' => null])] + protected ?bool $eda_symbol_visibility = null; + /** * Mapping is done in subclasses. * @@ -493,6 +501,21 @@ abstract class AbstractParameter extends AbstractNamedDBElement implements Uniqu return $this; } + public function isEdaSymbolVisibility(): ?bool + { + return $this->eda_symbol_visibility; + } + + /** + * @return $this + */ + public function setEdaSymbolVisibility(?bool $eda_symbol_visibility): self + { + $this->eda_symbol_visibility = $eda_symbol_visibility; + + return $this; + } + public function getComparableFields(): array { return ['name' => $this->name, 'group' => $this->group, 'element' => $this->element?->getId()]; diff --git a/src/Form/ParameterType.php b/src/Form/ParameterType.php index f68c3921..bf37fca4 100644 --- a/src/Form/ParameterType.php +++ b/src/Form/ParameterType.php @@ -156,6 +156,11 @@ class ParameterType extends AbstractType 'label' => false, 'required' => false, ]); + + $builder->add('eda_symbol_visibility', TriStateCheckboxType::class, [ + 'label' => false, + 'required' => false, + ]); } } diff --git a/src/Services/EDA/KiCadHelper.php b/src/Services/EDA/KiCadHelper.php index 42cc2518..a4d0a901 100644 --- a/src/Services/EDA/KiCadHelper.php +++ b/src/Services/EDA/KiCadHelper.php @@ -341,7 +341,9 @@ class KiCadHelper $fieldName = $parameter->getName(); //Don't overwrite hardcoded fields if (!isset($result['fields'][$fieldName])) { - $result['fields'][$fieldName] = $this->createField($parameter->getFormattedValue()); + //Whether the field should be visible in the schematic symbol (explicit, or system default when null) + $symbolVisibility = $parameter->isEdaSymbolVisibility() ?? $this->kiCadEDASettings->defaultParameterSymbolVisibility; + $result['fields'][$fieldName] = $this->createField($parameter->getFormattedValue(), $symbolVisibility); } } } diff --git a/src/Settings/MiscSettings/KiCadEDASettings.php b/src/Settings/MiscSettings/KiCadEDASettings.php index dd223007..a32b31e5 100644 --- a/src/Settings/MiscSettings/KiCadEDASettings.php +++ b/src/Settings/MiscSettings/KiCadEDASettings.php @@ -56,6 +56,13 @@ class KiCadEDASettings )] public bool $defaultParameterVisibility = false; + #[SettingsParameter( + label: new TM("settings.misc.kicad_eda.default_parameter_symbol_visibility"), + description: new TM("settings.misc.kicad_eda.default_parameter_symbol_visibility.help"), + + )] + public bool $defaultParameterSymbolVisibility = false; + #[SettingsParameter( label: new TM("settings.misc.kicad_eda.default_orderdetails_visibility"), description: new TM("settings.misc.kicad_eda.default_orderdetails_visibility.help"), diff --git a/templates/parts/edit/_specifications.html.twig b/templates/parts/edit/_specifications.html.twig index 6f631b9f..e55ea9da 100644 --- a/templates/parts/edit/_specifications.html.twig +++ b/templates/parts/edit/_specifications.html.twig @@ -15,6 +15,7 @@ {% trans %}specifications.text{% endtrans %} {% trans %}specifications.group{% endtrans %} + diff --git a/templates/parts/edit/edit_form_styles.html.twig b/templates/parts/edit/edit_form_styles.html.twig index 44c8d89c..993e1fb7 100644 --- a/templates/parts/edit/edit_form_styles.html.twig +++ b/templates/parts/edit/edit_form_styles.html.twig @@ -83,6 +83,9 @@ {% if form.eda_visibility is defined %} {{ form_widget(form.eda_visibility) }} {% endif %} + {% if form.eda_symbol_visibility is defined %} + {{ form_widget(form.eda_symbol_visibility) }} + {% endif %}