Phase 92 complete: - SVG clipboard icon przy nazwie w sekcji Dane zamawiajacego - navigator.clipboard.writeText() z wizualnym feedbackiem (checkmark 1.5s) - Style .copy-btn-inline i .copy-name-row Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
phase, plan, type, wave, depends_on, files_modified, autonomous, delegation
| phase | plan | type | wave | depends_on | files_modified | autonomous | delegation | ||
|---|---|---|---|---|---|---|---|---|---|
| 92-buyer-name-copy | 01 | execute | 1 |
|
true | off |
Purpose
Użytkownik często kopiuje dane kupującego — ikona eliminuje ręczne zaznaczanie tekstu.
Output
- Ikona kopiowania przy nazwie kupującego w sekcji "Dane zamawiającego" (addrType === 'customer')
- Clipboard copy via navigator.clipboard.writeText() (istniejący wzorzec w projekcie)
Source Files
@resources/views/orders/show.php (linie 268-305 — sekcja adresów, linia 280 — nazwa kupującego) @resources/views/settings/printing.php (linia 23 — istniejący wzorzec copy-to-clipboard z navigator.clipboard.writeText)
<acceptance_criteria>
AC-1: Ikona kopiowania widoczna przy nazwie kupującego
Given strona szczegółów zamówienia /orders/{id}
When sekcja "Dane zamawiającego" zawiera imię i nazwisko
Then obok nazwy kupującego widoczna jest ikona kopiowania (clipboard icon)
AC-2: Kliknięcie kopiuje dane do schowka
Given strona szczegółów zamówienia z danymi kupującego
When użytkownik kliknie ikonę kopiowania
Then imię i nazwisko kupującego zostaje skopiowane do schowka systemowego
AC-3: Feedback wizualny po skopiowaniu
Given użytkownik kliknął ikonę kopiowania
When kopiowanie się powiodło
Then ikona zmienia się na chwilę (np. checkmark) jako potwierdzenie
</acceptance_criteria>
Task 1: Dodać ikonę kopiowania w widoku show.php resources/views/orders/show.php W sekcji adresów (linia 280), dla addrType === 'customer', obok diva z nazwą kupującego dodać ikonę kopiowania: - Dodać span/button z ikoną clipboard (SVG inline lub FontAwesome jeśli dostępny w projekcie) - onclick: navigator.clipboard.writeText() kopiuje tekst nazwy - Po skopiowaniu: zmienić ikonę na checkmark na 1.5s, potem przywrócić oryginalną - Ikona widoczna zawsze (nie tylko na hover) — ma być szybko dostępna - Nie dodawać ikony kopiowania do sekcji invoice i delivery — tylko customer Otworzyć /orders/{id}, zobaczyć ikonę kopiowania przy nazwie w "Dane zamawiającego", kliknąć — dane w schowku AC-1, AC-2, AC-3 satisfied Task 2: Styl ikony kopiowania resources/scss/orders/_show.scss Dodać styl dla ikony kopiowania w sekcji adresu: - Ikona mała (14-16px), kolor muted, cursor pointer - Hover: kolor primary - Pozycjonowanie inline obok nazwy (nie zaburzając layoutu) - Klasa np. .copy-btn-inline Ikona wygląda spójnie z resztą UI, nie zaburza layoutu adresu AC-1 satisfied — ikona spójna wizualnieDO NOT CHANGE
- Logika pobierania danych adresowych (PHP)
- Sekcje invoice i delivery — bez zmian
- resources/modules/jquery-alerts/* — nie używać do tego celu
SCOPE LIMITS
- Tylko sekcja "Dane zamawiającego" (customer) — ikona kopiowania tylko przy nazwie
- Nie dodawać kopiowania do telefonu, emaila, adresu (chyba że user poprosi później)
- Nie dodawać zewnętrznych bibliotek clipboard
<success_criteria>
- Ikona kopiowania działa w sekcji "Dane zamawiającego"
- navigator.clipboard.writeText() kopiuje poprawne dane
- Wizualny feedback po skopiowaniu
- Brak regresji w wyglądzie strony szczegółów zamówienia </success_criteria>