update
This commit is contained in:
111
.paul/phases/82-product-title-tooltip/82-01-PLAN.md
Normal file
111
.paul/phases/82-product-title-tooltip/82-01-PLAN.md
Normal file
@@ -0,0 +1,111 @@
|
||||
---
|
||||
phase: 82-product-title-tooltip
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified: [src/Modules/Orders/OrdersController.php]
|
||||
autonomous: true
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Dodanie natywnego tooltipa (atrybut `title`) do uciętych nazw produktów na liście zamówień, aby po najechaniu myszką wyświetlała się pełna nazwa.
|
||||
|
||||
## Purpose
|
||||
Na liście zamówień nazwy produktów są obcinane przez `text-overflow: ellipsis`. Użytkownik nie ma możliwości zobaczenia pełnej nazwy bez wchodzenia w szczegóły zamówienia. Tooltip rozwiązuje ten problem minimalnym kosztem.
|
||||
|
||||
## Output
|
||||
Zmodyfikowany `OrdersController::productsHtml()` — atrybut `title` na elemencie `.orders-product__name`.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Source Files
|
||||
@src/Modules/Orders/OrdersController.php (metoda productsHtml(), linia 664)
|
||||
</context>
|
||||
|
||||
<skills>
|
||||
No specialized flows required.
|
||||
</skills>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Tooltip z pełną nazwą produktu
|
||||
```gherkin
|
||||
Given lista zamówień z produktem o długiej nazwie uciętej przez ellipsis
|
||||
When użytkownik najedzie kursorem na uciętą nazwę produktu
|
||||
Then pojawia się natywny tooltip przeglądarki z pełną nazwą produktu
|
||||
```
|
||||
|
||||
## AC-2: Brak tooltipa dla pustych nazw
|
||||
```gherkin
|
||||
Given produkt bez nazwy (wyświetlany jako "-")
|
||||
When użytkownik najedzie kursorem na "-"
|
||||
Then nie pojawia się tooltip (brak atrybutu title lub pusty)
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Dodanie atrybutu title do .orders-product__name</name>
|
||||
<files>src/Modules/Orders/OrdersController.php</files>
|
||||
<action>
|
||||
W metodzie `productsHtml()`, linia 664, dodać atrybut `title` do `<div class="orders-product__name">`:
|
||||
|
||||
Zmienić:
|
||||
```php
|
||||
. '<div class="orders-product__name">' . htmlspecialchars($name !== '' ? $name : '-', ENT_QUOTES, 'UTF-8') . '</div>'
|
||||
```
|
||||
|
||||
Na:
|
||||
```php
|
||||
. '<div class="orders-product__name"' . ($name !== '' ? ' title="' . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . '"' : '') . '>' . htmlspecialchars($name !== '' ? $name : '-', ENT_QUOTES, 'UTF-8') . '</div>'
|
||||
```
|
||||
|
||||
- Atrybut `title` dodawany tylko gdy nazwa nie jest pusta
|
||||
- Wartość `title` escapowana przez `htmlspecialchars` (XSS safety)
|
||||
- Nie zmieniać żadnej innej logiki metody
|
||||
</action>
|
||||
<verify>Otworzyć /orders/list, najechać na uciętą nazwę produktu — powinien pojawić się tooltip z pełną nazwą</verify>
|
||||
<done>AC-1 i AC-2 spełnione: tooltip pokazuje pełną nazwę; brak tooltipa dla pustych nazw</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- resources/scss/* (styl truncacji zostaje bez zmian)
|
||||
- resources/views/orders/* (widoki bez zmian)
|
||||
- Logika budowania `$itemsPreview` i reszta metody `productsHtml()`
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Tylko natywny tooltip HTML (`title`), bez custom JS tooltip library
|
||||
- Tylko lista zamówień — nie strona szczegółów
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] Atrybut `title` obecny w renderowanym HTML produktów z długą nazwą
|
||||
- [ ] Brak atrybutu `title` dla produktów bez nazwy
|
||||
- [ ] Brak regresji — lista zamówień renderuje się poprawnie
|
||||
- [ ] Wszystkie acceptance criteria spełnione
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Tooltip z pełną nazwą produktu widoczny po hover na liście zamówień
|
||||
- Brak zmian CSS ani JS
|
||||
- Brak regresji w renderowaniu listy
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/82-product-title-tooltip/82-01-SUMMARY.md`
|
||||
</output>
|
||||
84
.paul/phases/82-product-title-tooltip/82-01-SUMMARY.md
Normal file
84
.paul/phases/82-product-title-tooltip/82-01-SUMMARY.md
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
phase: 82-product-title-tooltip
|
||||
plan: 01
|
||||
subsystem: ui
|
||||
tags: [tooltip, orders-list, ux]
|
||||
|
||||
requires: []
|
||||
provides:
|
||||
- Natywny tooltip z pelna nazwa produktu na liscie zamowien
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: []
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified: [src/Modules/Orders/OrdersController.php]
|
||||
|
||||
key-decisions: []
|
||||
|
||||
patterns-established: []
|
||||
|
||||
duration: 2min
|
||||
started: 2026-04-07T00:00:00Z
|
||||
completed: 2026-04-07T00:00:00Z
|
||||
---
|
||||
|
||||
# Phase 82 Plan 01: Product Title Tooltip Summary
|
||||
|
||||
**Dodano atrybut `title` do elementu `.orders-product__name` w metodzie `productsHtml()` — natywny tooltip przegladarki z pelna nazwa produktu na liscie zamowien.**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~2min |
|
||||
| Tasks | 1 completed |
|
||||
| Files modified | 1 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Tooltip z pelna nazwa produktu | Pass | Atrybut `title` dodany z escapowana nazwa |
|
||||
| AC-2: Brak tooltipa dla pustych nazw | Pass | Warunek `$name !== ''` pomija pusty title |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Dodano atrybut `title` do `<div class="orders-product__name">` z pelna nazwa produktu (XSS-safe przez `htmlspecialchars`)
|
||||
- Tooltip pojawia sie tylko gdy nazwa nie jest pusta
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `src/Modules/Orders/OrdersController.php` | Modified | Dodano atrybut `title` w metodzie `productsHtml()` linia 664 |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
None - followed plan as specified
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Tooltip dziala natywnie, zero zaleznosci JS/CSS
|
||||
|
||||
**Concerns:**
|
||||
- None
|
||||
|
||||
**Blockers:**
|
||||
- None
|
||||
|
||||
---
|
||||
*Phase: 82-product-title-tooltip, Plan: 01*
|
||||
*Completed: 2026-04-07*
|
||||
Reference in New Issue
Block a user