--- phase: 43-print-queue-entry-removal plan: 01 type: execute wave: 1 depends_on: [] files_modified: - src/Modules/Printing/PrintJobRepository.php - src/Modules/Settings/PrintSettingsController.php - routes/web.php - resources/views/settings/printing.php - resources/scss/modules/_printing.scss - public/assets/css/app.css - DOCS/ARCHITECTURE.md - DOCS/TECH_CHANGELOG.md - DOCS/todo.md autonomous: false --- ## Goal Zrealizowac punkt 43 z `DOCS/todo.md`: dodac mozliwosc usuwania wpisu z kolejki druku etykiet. ## Purpose Operator ma miec kontrole nad kolejka (np. usuniecie blednego lub nieaktualnego zlecenia), bez ingerencji bezposrednio w baze danych. ## Output Nowa akcja usuwania wpisu kolejki z poziomu `Ustawienia > Drukowanie`, backendowy endpoint z walidacja CSRF, aktualizacja widoku i dokumentacji technicznej. ## Project Context @.paul/PROJECT.md @.paul/ROADMAP.md @.paul/STATE.md @DOCS/todo.md @DOCS/ARCHITECTURE.md @DOCS/DB_SCHEMA.md ## Prior Work (only if genuinely needed) @.paul/phases/18-print-queue-backend/18-01-SUMMARY.md @.paul/phases/19-ui-integration/19-01-SUMMARY.md ## Source Files @src/Modules/Printing/PrintJobRepository.php @src/Modules/Settings/PrintSettingsController.php @routes/web.php @resources/views/settings/printing.php @resources/scss/modules/_printing.scss ## Required Skills (from SPECIAL-FLOWS.md) | Skill | Priority | When to Invoke | Loaded? | |-------|----------|----------------|---------| | `sonar-scanner` | required | Po APPLY, przed UNIFY | o | | /code-review | optional | Po implementacji, przed UNIFY | o | **BLOCKING:** Required skills MUST be loaded before APPLY proceeds. ## Skill Invocation Checklist - [ ] `sonar-scanner` uruchomiony po APPLY - [ ] /code-review (opcjonalnie) ## AC-1: Backend obsluguje usuwanie wpisu kolejki druku ```gherkin Given wpis istnieje w tabeli `print_jobs` When uzytkownik wysle poprawny request usuniecia z tokenem CSRF Then rekord jest usuwany z kolejki And uzytkownik dostaje komunikat sukcesu lub poprawny blad ``` ## AC-2: UI pozwala usunac wpis z kolejki w bezpieczny sposob ```gherkin Given uzytkownik jest na `Ustawienia > Drukowanie` When kliknie akcje usuniecia przy wpisie kolejki Then widzi potwierdzenie przez `window.OrderProAlerts.confirm(...)` And po zatwierdzeniu wpis znika z listy po odswiezeniu ``` ## AC-3: Zmiana jest odnotowana w dokumentacji i TODO ```gherkin Given wdrozenie punktu 43 When sprawdzane sa dokumenty techniczne Then ARCHITECTURE i TECH_CHANGELOG opisuja nowa akcje usuwania z kolejki And punkt 43 w DOCS/todo.md jest oznaczony jako wykonany ``` Task 1: Dodaj backendowe usuwanie wpisu kolejki druku src/Modules/Printing/PrintJobRepository.php, src/Modules/Settings/PrintSettingsController.php, routes/web.php Dodaj w repozytorium metode usuwania wpisu po `id` (prepared statement). Rozszerz `PrintSettingsController` o akcje `deleteJob` z walidacja CSRF i flash messages. Dodaj route POST dla usuwania wpisu kolejki (obszar ustawien drukowania, auth required). Zachowaj istniejace endpointy API dla klienta Windows bez zmian. rg -n "deleteJob|DELETE FROM print_jobs|/settings/printing/jobs" src/Modules/Printing/PrintJobRepository.php src/Modules/Settings/PrintSettingsController.php routes/web.php AC-1 satisfied: rekord moze byc usuniety przez kontrolowany endpoint. Task 2: Dodaj akcje usuwania do widoku kolejki druku resources/views/settings/printing.php, resources/scss/modules/_printing.scss, public/assets/css/app.css W tabeli `Kolejka wydruku` dodaj przycisk/formularz usuwania wpisu. Potwierdzenie realizuj przez `window.OrderProAlerts.confirm(...)` (bez natywnego `confirm`). Styl akcji dodaj w SCSS i przebuduj CSS do `public/assets/css/app.css`. Nie dodawaj inline CSS; zachowaj kompaktowosc layoutu. rg -n "OrderProAlerts\.confirm|Usun|print-queue" resources/views/settings/printing.php resources/scss/modules/_printing.scss AC-2 satisfied: usuwanie wpisu jest dostepne i zabezpieczone potwierdzeniem. Task 3: Zaktualizuj dokumentacje techniczna i TODO DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md, DOCS/todo.md Opisz nowa akcje usuwania wpisu kolejki i jej endpoint/kontroler. Oznacz punkt 43 jako wykonany. Upewnij sie, ze dokumentacja nie sugeruje juz braku tej funkcji. rg -n "43\.|kolejk|usun|printing" DOCS/ARCHITECTURE.md DOCS/TECH_CHANGELOG.md DOCS/todo.md AC-3 satisfied: dokumentacja i TODO sa aktualne. Usuwanie wpisu kolejki druku z poziomu panelu ustawien. 1. Otworz `Ustawienia > Drukowanie`. 2. W sekcji `Kolejka wydruku` kliknij `Usun` przy wybranym wpisie. 3. Potwierdz akcje w modalu OrderProAlerts. 4. Sprawdz, ze po odswiezeniu wpis nie jest widoczny. 5. Sprawdz, ze anulowanie potwierdzenia nie usuwa wpisu. Type "approved" to continue, or describe issues to fix ## DO NOT CHANGE - `database/migrations/*` - API key endpointy klienta drukujacego - Logika tworzenia i pobierania etykiet ## SCOPE LIMITS - Zakres dotyczy wyłącznie usuwania wpisow kolejki druku. - Bez dodawania masowych operacji na kolejce. - Bez zmian poza obszarem ustawien drukowania i repozytorium kolejki. Before declaring plan complete: - [ ] `C:\xampp\php\php.exe -l src/Modules/Printing/PrintJobRepository.php` - [ ] `C:\xampp\php\php.exe -l src/Modules/Settings/PrintSettingsController.php` - [ ] `C:\xampp\php\php.exe -l routes/web.php` - [ ] `C:\xampp\php\php.exe -l resources/views/settings/printing.php` - [ ] `npm run build:css` (jesli wymagane przez zmiany SCSS) - [ ] Manual verification checkpoint wykonany - [ ] Dokumentacja (`DOCS/ARCHITECTURE.md`, `DOCS/TECH_CHANGELOG.md`, `DOCS/todo.md`) zaktualizowana - [ ] All acceptance criteria met - Uzytkownik moze usunac wpis kolejki druku z UI - Potwierdzenie dziala przez OrderProAlerts - Punkt 43 zamkniety wraz z dokumentacja After completion, create `.paul/phases/43-print-queue-entry-removal/43-01-SUMMARY.md`