3.4 KiB
3.4 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous
| phase | plan | type | wave | depends_on | files_modified | autonomous | |
|---|---|---|---|---|---|---|---|
| 78-preset-auto-submit | 01 | execute | 1 |
|
true |
Purpose
Aktualnie użytkownik musi kliknąć preset, a potem ręcznie kliknąć "Utwórz przesyłkę". Skoro preset wypełnia wszystkie dane — submit powinien nastąpić automatycznie, oszczędzając jedno kliknięcie.
Output
- Funkcja
applyPreset()po wypełnieniu pól automatycznie submituje formularz
Source Files
@resources/views/shipments/prepare.php (linie 957-993: applyPreset + setTimeout 200ms)
No specialized flows configured — optional skills only.<acceptance_criteria>
AC-1: Auto-submit po kliknięciu presetu
Given formularz przygotowania przesyłki z co najmniej jednym presetem
When użytkownik klika przycisk presetu
Then formularz wypełnia się danymi presetu
And formularz automatycznie się submituje (tworzenie przesyłki)
AC-2: Brak regresji autofill
Given preset z zapisanymi danymi (carrier, wymiary, metoda dostawy)
When preset jest aplikowany
Then wszystkie pola formularza są poprawnie wypełnione przed submitem
</acceptance_criteria>
Task 1: Dodanie auto-submit po applyPreset resources/views/shipments/prepare.php W funkcji `applyPreset()` (linia ~957), wewnątrz istniejącego `setTimeout` (200ms) na końcu callbacku (po `selectDeliveryService(preset)`):1. Dodaj drugi `setTimeout` (krótki, np. 100ms) po zakończeniu autofill, który:
- Znajduje formularz: `document.getElementById('shipment-form')` lub `document.querySelector('form[action*="shipment/create"]')`
- Wywołuje `form.submit()` lub klika przycisk submit
2. Formularz może nie mieć id — sprawdź czy `<form>` ma id. Jeśli nie, dodaj `id="shipment-form"` do tagu `<form>`.
Uwaga: `selectDeliveryService()` może mieć swój setTimeout — sprawdź czy submit nie nastąpi przed zakończeniem selekcji. Użyj wystarczającego opóźnienia (np. łącznie 400-500ms od kliknięcia presetu).
Przegląd kodu: po applyPreset formularz submituje się automatycznie.
PHP lint: brak błędów składni.
AC-1 i AC-2 spełnione — preset autofill + auto-submit
DO NOT CHANGE
- Logika autofill presetu (kolejność wypełniania pól, setTimeout 200ms)
- Backend ShipmentController (logika tworzenia przesyłki)
- API presetów (/api/shipment-presets/*)
SCOPE LIMITS
- Tylko auto-submit po kliknięciu presetu
- Nie zmieniamy zachowania przycisku "Utwórz przesyłkę" ani ręcznego formularza
<success_criteria>
- Task 1 ukończony
- Weryfikacja przeszła
- Brak błędów PHP </success_criteria>