Unterstützung für IPN-Suche in der BOM-Konfiguration bei Part- und Assembly-Auswahl hinzufügen.

JavaScript BOM-Synchronisation (nur ein Part oder ein Assembly wählbar) ergänzen.
laceholder für Name-Angabe setzen: Entweder Part- oder Assembly-Name.
This commit is contained in:
Marcel Diegelmann 2026-04-08 15:45:43 +02:00
parent ca6254cc53
commit a126a8f7b6
10 changed files with 155 additions and 21 deletions

View file

@ -31,7 +31,7 @@
{% set target_id = 'expand_row-' ~ form.vars.name %}
{% import 'components/collection_type.macro.html.twig' as collection %}
<tr>
<tr {{ stimulus_controller('elements--bom-name-sync') }}>
<td>
<button class="btn btn-sm btn-outline-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#{{ target_id }}">
<i class="fa-solid fa-eye"></i>
@ -42,11 +42,19 @@
{{ form_errors(form.quantity) }}
</td>
<td style="min-width: 250px;">
{{ form_widget(form.part) }}
<div {{ stimulus_target('elements--bom-name-sync', 'part') }} data-action="change->elements--bom-name-sync#sync change@window->elements--bom-name-sync#sync">
{{ form_row(form.part) }}
</div>
{{ form_errors(form.part) }}
</td>
<td>
{{ form_widget(form.name) }}
{{ form_widget(form.name, {
attr: {
'data-elements--bom-name-sync-target': 'name',
'data-original-placeholder': form.name.vars.attr.placeholder|default(''),
'data-action': 'input->elements--bom-name-sync#sync'
}
}) }}
{{ form_errors(form.name) }}
</td>
<td>
@ -77,4 +85,4 @@
</div>
</td>
</tr>
{% endblock %}
{% endblock %}

View file

@ -31,7 +31,7 @@
{% set target_id = 'expand_row-' ~ form.vars.name %}
{% import 'components/collection_type.macro.html.twig' as collection %}
<tr>
<tr {{ stimulus_controller('elements--bom-name-sync') }}>
<td>
<button class="btn btn-sm btn-outline-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#{{ target_id }}">
<i class="fa-solid fa-eye"></i>
@ -42,14 +42,24 @@
{{ form_errors(form.quantity) }}
</td>
<td style="min-width: 450px;">
{{ form_row(form.part) }}
<div {{ stimulus_target('elements--bom-name-sync', 'part') }} data-action="change->elements--bom-name-sync#sync change@window->elements--bom-name-sync#sync">
{{ form_row(form.part) }}
</div>
{{ form_errors(form.part) }}
<div class="text-center mb-2" style="line-height: 1"></div>
{{ form_widget(form.referencedAssembly) }}
<div {{ stimulus_target('elements--bom-name-sync', 'assembly') }} data-action="change->elements--bom-name-sync#sync change@window->elements--bom-name-sync#sync">
{{ form_row(form.referencedAssembly) }}
</div>
{{ form_errors(form.referencedAssembly) }}
</td>
<td style="min-width: 450px;">
{{ form_row(form.name) }}
{{ form_row(form.name, {
attr: {
'data-elements--bom-name-sync-target': 'name',
'data-original-placeholder': form.name.vars.attr.placeholder|default(''),
'data-action': 'input->elements--bom-name-sync#sync'
}
}) }}
{{ form_errors(form.name) }}
<div class="text-center mb-2" style="line-height: 1"></div>
{{ form_row(form.designator) }}

View file

@ -136,7 +136,15 @@
{%- endblock choice_widget_collapsed -%}
{% block part_select_widget %}
{{ form_widget(form.autocomplete) }}
<div {{ stimulus_controller('elements--part-select') }} data-autocomplete="{{ attr['data-autocomplete']|default('') }}">
{{ form_widget(form.autocomplete) }}
</div>
{% endblock %}
{% block assembly_select_widget %}
<div {{ stimulus_controller('elements--assembly-select') }} data-autocomplete="{{ attr['data-autocomplete']|default('') }}">
{{ form_widget(form.autocomplete) }}
</div>
{% endblock %}
{% block password_widget %}