Files
orderPRO/.paul/phases/92-buyer-name-copy/92-01-PLAN.md
Jacek Pyziak 12c400fdc6 feat(92-buyer-name-copy): ikona kopiowania nazwy kupujacego w szczegolach zamowienia
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>
2026-04-09 12:14:36 +02:00

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
resources/views/orders/show.php
resources/scss/orders/_show.scss
true off
## Goal Dodać ikonę kopiowania obok imienia i nazwiska kupującego w sekcji "Dane zamawiającego" na stronie szczegółów zamówienia. Kliknięcie ikony kopiuje pełne imię i nazwisko do schowka.

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)
## Project Context @.paul/PROJECT.md @.paul/STATE.md

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 wizualnie

DO 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
Before declaring plan complete: - [ ] Ikona kopiowania widoczna przy nazwie kupującego w /orders/{id} - [ ] Kliknięcie kopiuje imię i nazwisko do schowka - [ ] Feedback wizualny (checkmark) po skopiowaniu - [ ] Brak błędów w konsoli JS - [ ] SCSS zbudowany do CSS - [ ] Layout adresu niezmieniony poza dodaną ikoną

<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>
After completion, create `.paul/phases/92-buyer-name-copy/92-01-SUMMARY.md`