update
This commit is contained in:
109
.paul/phases/78-preset-auto-submit/78-01-PLAN.md
Normal file
109
.paul/phases/78-preset-auto-submit/78-01-PLAN.md
Normal file
@@ -0,0 +1,109 @@
|
||||
---
|
||||
phase: 78-preset-auto-submit
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified:
|
||||
- resources/views/shipments/prepare.php
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Presety przesyłek po autofill automatycznie submitują formularz (kliknięcie "Utwórz przesyłkę").
|
||||
|
||||
## 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
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Source Files
|
||||
@resources/views/shipments/prepare.php (linie 957-993: applyPreset + setTimeout 200ms)
|
||||
</context>
|
||||
|
||||
<skills>
|
||||
No specialized flows configured — optional skills only.
|
||||
</skills>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Auto-submit po kliknięciu presetu
|
||||
```gherkin
|
||||
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
|
||||
```gherkin
|
||||
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>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Dodanie auto-submit po applyPreset</name>
|
||||
<files>resources/views/shipments/prepare.php</files>
|
||||
<action>
|
||||
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).
|
||||
</action>
|
||||
<verify>
|
||||
Przegląd kodu: po applyPreset formularz submituje się automatycznie.
|
||||
PHP lint: brak błędów składni.
|
||||
</verify>
|
||||
<done>AC-1 i AC-2 spełnione — preset autofill + auto-submit</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## 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
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] Kliknięcie presetu wypełnia formularz i submituje go
|
||||
- [ ] Formularz ma id umożliwiające łatwe znalezienie w JS
|
||||
- [ ] Brak błędów PHP syntax
|
||||
- [ ] Ręczne wypełnienie formularza i kliknięcie "Utwórz przesyłkę" nadal działa
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Task 1 ukończony
|
||||
- Weryfikacja przeszła
|
||||
- Brak błędów PHP
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/78-preset-auto-submit/78-01-SUMMARY.md`
|
||||
</output>
|
||||
91
.paul/phases/78-preset-auto-submit/78-01-SUMMARY.md
Normal file
91
.paul/phases/78-preset-auto-submit/78-01-SUMMARY.md
Normal file
@@ -0,0 +1,91 @@
|
||||
---
|
||||
phase: 78-preset-auto-submit
|
||||
plan: 01
|
||||
subsystem: shipments
|
||||
tags: [presets, autofill, auto-submit, ux]
|
||||
|
||||
requires:
|
||||
- phase: 23-shipment-presets-backend
|
||||
provides: preset API i autofill
|
||||
provides:
|
||||
- Auto-submit formularza po kliknieciu presetu przesylki
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: []
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- resources/views/shipments/prepare.php
|
||||
|
||||
key-decisions:
|
||||
- "500ms laczny delay (200ms autofill + 300ms submit) — wystarczajacy na selectDeliveryService"
|
||||
|
||||
patterns-established: []
|
||||
|
||||
duration: 5min
|
||||
started: 2026-04-07T00:00:00Z
|
||||
completed: 2026-04-07T00:05:00Z
|
||||
---
|
||||
|
||||
# Phase 78 Plan 01: Preset Auto Submit Summary
|
||||
|
||||
**Presety przesylek automatycznie submituja formularz po autofill — jedno klikniecie zamiast dwoch**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~5min |
|
||||
| Started | 2026-04-07 |
|
||||
| Completed | 2026-04-07 |
|
||||
| Tasks | 1 completed |
|
||||
| Files modified | 1 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Auto-submit po kliknieciu presetu | Pass | form.submit() po 500ms od klikniecia |
|
||||
| AC-2: Brak regresji autofill | Pass | Autofill bez zmian, submit nastepuje po nim |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Dodano `id="shipment-form"` na formularz tworzenia przesylki
|
||||
- `applyPreset()` po autofill (200ms) czeka 300ms i wywoluje `form.submit()`
|
||||
- Jedno klikniecie presetu = wypelnienie + utworzenie przesylki
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `resources/views/shipments/prepare.php` | Modified | id na formularzu + auto-submit w applyPreset() |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
None — plan wykonany zgodnie ze specyfikacja.
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None — plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Preset flow kompletny: klik → autofill → submit
|
||||
|
||||
**Concerns:**
|
||||
- None
|
||||
|
||||
**Blockers:**
|
||||
- None
|
||||
|
||||
---
|
||||
*Phase: 78-preset-auto-submit, Plan: 01*
|
||||
*Completed: 2026-04-07*
|
||||
Reference in New Issue
Block a user