Modul-Konfigurator · Drag-&-Drop-Bedarfe
Status: Entwurf · Referenz: Step 2 im Case-Editor
Pattern für die Konfiguration eines Mandats. Der Analyst zieht Module und Gewerke per Drag-&-Drop in die aktive Konfiguration des Cases.
Layout
Zwei-Spalten-Bereich im Case-Editor:
Verhalten
- Drag: Listen-Item auf der linken Seite kann gegriffen werden. Cursor wechselt zu
grabbing. - Hover über Dropzone: Border wechselt zu Brand-Orange, Hintergrund zu
--color-orange-soft. - Drop: Item wird als neue Bedarfsposition mit
uid()in den Case-State geschrieben. Live-Rechnung passt sich an. - Position editieren: Inline Felder (Menge, Einheit, Provider-Select). Provider-Select gruppiert intern (Töchter) und extern.
- Position entfernen: kleines „ד-Button rechts auf der Position.
Provider-Auswahl
<select> <optgroup label="Intern (Töchter)"> <option>AHBW · ad hoc bau.werk GmbH</option> <option>AHBS · ad hoc best services</option> … </optgroup> <optgroup label="Extern"> <option>Finron GmbH</option> <option>ISTA SE</option> … </optgroup></select>Wechsel des Providers triggert Re-Calc.
Modul-Bezug
Jedes Gewerk ist einem Modul zugeordnet (oder zu mehreren möglich). Wenn der Analyst ein Modul deaktiviert (Toggle in Step 3 / Annahmen), werden die zugehörigen Bedarfe nicht automatisch entfernt — sie zählen aber nicht mehr in die Berechnung.
Drag-&-Drop-Implementation
- HTML5 Drag-API nativ.
dataTransfer.setData("text/gewerk", gewerk.key)beim Drag-Start.dataTransfer.effectAllowed = "copy"(kein Move — Original-Item bleibt).- Dropzone nutzt
onDragOvermitpreventDefaultzur Activierung des Hover-States.
Accessibility (V2)
- Keyboard-Alternative: Items per Enter selektieren, Pfeiltasten zur Dropzone, Enter zum Ablegen.
- Screen-Reader-Ankündigung bei Drag-Start („Item X wird gezogen”) und Drop („Item X als Bedarfsposition Y hinzugefügt”).
Verwandte Dokumente
../20-screens/04-case-editor-wizard.md../../business/30-domain/06-objects-case.md—Bedarfspositionundcase_selects_module