{% extends '@EasyAdmin/page/content.html.twig' %} {% block page_title %}Artikel einlesen{% endblock %} {% block main %} {% if catalogNumber %} {% endif %} {# ── Camera Modal ─────────────────────────────────────────────────── #}
{# ── Left: form ───────────────────────────────────────────────── #}
{{ form_start(form, {'attr': {'enctype': 'multipart/form-data', 'id': 'ingest-form', 'novalidate': 'novalidate'}}) }}
Artikelinfo
{{ form_label(form.articleType) }} {{ form_widget(form.articleType) }} {{ form_errors(form.articleType) }}
{{ form_label(form.condition) }} {{ form_widget(form.condition) }}
{{ form_label(form.conditionNotes) }} {{ form_widget(form.conditionNotes, {'attr': {'class': 'form-control'}}) }}
{# ── Search photo (mandatory) ─────────────────────────────── #} {% set searchInputId = form.image.vars.id %}
Erkennungs-Foto Pflicht
Typenschild / Aufkleber mit Modell & Seriennummer
{# File input — opacity:0 so label-click still works in all browsers #} {{ form_widget(form.image, {'attr': {'style': 'position:absolute;opacity:0;width:0;height:0;', 'tabindex': '-1', 'id': searchInputId}}) }} {{ form_errors(form.image) }} {# Drop zone / placeholder (also a drop target) #}
{# Preview (hidden until photo selected) #} {# Empty state #}
Foto hier ablegen oder Schaltfläche nutzen
{# label triggers the file input directly — no JS needed #}
{# ── Additional photos (optional) ─────────────────────────── #}
Weitere Fotos (optional)
{# Plain HTML input — label trigger works without JS tricks #}
Keine weiteren Fotos hinzugefügt
{{ form_end(form) }}
{# ── Right: AI config ─────────────────────────────────────────── #}
KI-Konfiguration
{{ aiConfig.backend }} aktiv
Vision-Modell {{ aiConfig.vision_model }}
Text-Modell {{ aiConfig.text_model }}
Mistral Endpoint {{ aiConfig.mistral_base_url }}
Mistral API-Key {% if aiConfig.mistral_key_set %} gesetzt {{ aiConfig.mistral_key_hint }} {% else %} nicht gesetzt {% endif %}
{% endblock %}