diff --git a/.paul/PROJECT.md b/.paul/PROJECT.md index 319c751..65e20ec 100644 --- a/.paul/PROJECT.md +++ b/.paul/PROJECT.md @@ -13,8 +13,8 @@ Sprzedawca moĹĽe obsĹ‚ugiwać zamĂłwienia ze wszystkich kanałów | Attribute | Value | |-----------|-------| | Version | 3.9.0-dev | -| Status | v3.11 Polkurier shipment prepare hotfix complete - Phase 142 closed | -| Last Updated | 2026-05-18 (Phase 142 unified) | +| Status | v3.12 Orders List Sidebar UI Hotfix complete - Phase 143 closed | +| Last Updated | 2026-05-18 (Phase 143 unified) | ## Requirements @@ -142,6 +142,7 @@ Sprzedawca moĹĽe obsĹ‚ugiwać zamĂłwienia ze wszystkich kanałów - [x] shopPRO Polkurier Delivery Mapping: zakladka `Dostawy` integracji shopPRO pozwala mapowac forme dostawy na Polkurier, laduje uslugi z `PolkurierShipmentService::getDeliveryServices()` i zapisuje `provider='polkurier'` w `carrier_delivery_method_mappings` bez migracji DB — Phase 140 - [x] Integrations Hub Grouped Sections: `/settings/integrations` pokazuje lekkie sekcje dla marketplace, kurierow i pozostalych integracji, bez starego naglowka/opisu wspolnego panelu — Phase 141 - [x] Polkurier Shipment Prepare Prefill: `/orders/{id}/shipment/prepare` rozpoznaje mapowania shopPRO z `provider='polkurier'`, preselectuje przewoznika i usluge oraz nie fallbackuje do Allegro — Phase 142 +- [x] Orders List Sidebar UI Hotfix: `/orders/list` startuje bez opisowego boksu "Zamowienia", a zapisany zwiniety sidebar jest stosowany przed pierwszym renderem strony — Phase 143 - [x] Integracja polkurier.pl (fundament): pojedyncza globalna konfiguracja w `/settings/integrations/polkurier`, szyfrowany Token API + login, karta w hubie integracji obok Apaczki i realny test polaczenia przez `apimetod=test_auth_api` zweryfikowany na zywym koncie operatora; `ShipmentProviderRegistry` netkniety — `PolkurierShipmentService/TrackingService` w kolejnych fazach — Phase 127 - [x] polkurier ShipmentService + TrackingService + UI prepare panel: pelen kontrakt API (createShipment/getLabel/getStatus/cancelOrder/getAvailableCarriers), `PolkurierShipmentService` implementujacy `ShipmentProviderInterface` z normalizacja shipmenttype (lowercase) i splitem ulicy na street/housenumber/flatnumber, `PolkurierTrackingService` mapujacy statusy O/P/A/WP/D/Z/W na znormalizowane, panel "polkurier" w `prepare.php` z dynamiczna lista uslug z `available_carriers`, seed migracja `delivery_status_mappings(provider='polkurier')` z 7 wpisami z PDF v1.11; live test na #114/#115 zakonczony sukcesem po 4 iteracjach (ReferenceError → uppercase shipmenttype → orderno parsing → A4/A6); rozmiar etykiety sterowany w panelu klienta polkurier.pl (Ustawienia konta → Preferencje etykiet), NIE przez API — Phase 128 - [x] Order User Notes module (Phase 129): pelen CRUD notatek autorskich operatora per zamowienie. Reuse `order_notes` przez nowy `note_type='user'` z `user_id` (FK→users SET NULL) + `author_name` (snapshot) + indeks `idx_order_notes_type_order`. `OrderNotesService` z autoryzacja DB-level (`WHERE user_id = :user_id`, rowCount=0 ⇒ 403). Sekcja `#notes` w "Wiadomosci i zalaczniki" w `/orders/{id}` z inline edit form + delete przez `OrderProAlerts.confirm`. Badge `[N]` (indigo neutralny) przy nr zamowienia na `/orders/list` (subquery `user_notes_count` w paginate). Brak admin override (brak systemu rol w aplikacji) — edit/delete tylko dla autora — Phase 129 @@ -324,6 +325,6 @@ Quick Reference: --- *PROJECT.md — Updated when requirements or context change* -*Last updated: 2026-05-18 after Phase 142 closure* +*Last updated: 2026-05-18 after Phase 143 closure* diff --git a/.paul/ROADMAP.md b/.paul/ROADMAP.md index 138b3b6..a4e93ad 100644 --- a/.paul/ROADMAP.md +++ b/.paul/ROADMAP.md @@ -6,6 +6,23 @@ orderPRO to narzedzie do wielokanalowego zarzadzania sprzedaza. Projekt przechod ## Current Milestone +v3.12 Orders List Sidebar UI Hotfix - Complete + +Maly hotfix UX dla ekranu operacyjnego: usuniecie opisowego boksu z listy zamowien oraz likwidacja widocznego "pokaz i schowaj" przy odswiezaniu strony ze zwinietym sidebarem. + +Progress: 1 of 1 phases complete (100%). + +| Phase | Name | Plans | Status | +|-------|------|-------|--------| +| 143 | Orders List Sidebar UI Hotfix | 1/1 | Complete (2026-05-18; manual UI/Sonar follow-up pending) | + +### Phase 143: Orders List Sidebar UI Hotfix + +Focus: Usunac boks "Zamowienia / Kompaktowa lista zamowien oparta o lokalna baze orderPRO." z `/orders/list` i zastosowac zapisany stan zwinietego sidebaru przed pierwszym renderem strony. +Plans: 143-01 (complete; `.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md`) + +## Previous Milestone + v3.11 Polkurier Shipment Prepare Hotfix - Complete Pilny hotfix po Phase 140: mapowanie shopPRO -> Polkurier zapisuje sie poprawnie, ale formularz `/orders/{id}/shipment/prepare` nie podstawia providera i uslugi Polkuriera. @@ -21,7 +38,7 @@ Progress: 1 of 1 phases complete (100%). Focus: Naprawic preselect w formularzu przygotowania przesylki, aby `carrier_delivery_method_mappings.provider='polkurier'` wybieral przewoznika Polkurier, zaznaczal zapisana usluge i ustawial hidden fields wymagane przez `PolkurierShipmentService`. Plans: 142-01 (complete; `.paul/phases/142-polkurier-shipment-prepare-prefill/142-01-SUMMARY.md`) -## Previous Milestone +## Earlier Milestone v3.10 Integrations UI Polish - Complete @@ -653,4 +670,4 @@ Archive: `.paul/milestones/v0.1-ROADMAP.md` --- *Roadmap created: 2026-03-12* -*Last updated: 2026-05-18 - Phase 141 complete; v3.10 Integrations UI Polish complete* +*Last updated: 2026-05-18 - Phase 143 complete; v3.12 Orders List Sidebar UI Hotfix complete* diff --git a/.paul/STATE.md b/.paul/STATE.md index b3c0acb..52cda35 100644 --- a/.paul/STATE.md +++ b/.paul/STATE.md @@ -5,19 +5,19 @@ See: .paul/PROJECT.md (updated 2026-05-18) **Core value:** Sprzedawca moze obslugiwac zamowienia ze wszystkich kanalow sprzedazy i nadawac przesylki bez przelaczania sie miedzy platformami. -**Current focus:** v3.11 Polkurier Shipment Prepare Hotfix complete; Phase 142 unified. +**Current focus:** v3.12 Orders List Sidebar UI Hotfix complete; Phase 143 unified. ## Current Position -Milestone: v3.11 Polkurier Shipment Prepare Hotfix -Phase: 142 of 142 (Polkurier Shipment Prepare Prefill) - Complete -Plan: 142-01 complete +Milestone: v3.12 Orders List Sidebar UI Hotfix +Phase: 143 of 143 (Orders List Sidebar UI Hotfix) - Complete +Plan: 143-01 complete Status: Milestone complete, ready for next milestone or release decision -Last activity: 2026-05-18 10:34 - Unified .paul/phases/142-polkurier-shipment-prepare-prefill/142-01-PLAN.md +Last activity: 2026-05-18 11:50 - Unified .paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-PLAN.md Progress: -- Milestone v3.11: [##########] 100% (1 of 1 phases complete) -- Phase 142: [##########] 100% (complete) +- Milestone v3.12: [##########] 100% (1 of 1 phases complete) +- Phase 143: [##########] 100% (complete) ## Loop Position @@ -29,19 +29,19 @@ PLAN -> APPLY -> UNIFY ## Session Continuity -Last session: 2026-05-18 10:34 -Stopped at: Phase 142 complete; v3.11 milestone complete +Last session: 2026-05-18 11:50 +Stopped at: Phase 143 complete; v3.12 milestone complete Next action: Run $paul-complete-milestone or start next milestone planning -Resume file: .paul/phases/142-polkurier-shipment-prepare-prefill/142-01-SUMMARY.md +Resume file: .paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md ## Pending parallel work - None — Phase 118, 121, 122 wszystkie zacommitowane (8f14851, 360eef1). ## Git State -Last commit: HEAD fix(142): preselect polkurier shipment mapping -Last phase commit: HEAD fix(142): preselect polkurier shipment mapping -Previous: feat(141): group integrations hub sections +Last commit: HEAD fix(143): polish orders list and sidebar first paint +Last phase commit: HEAD fix(143): polish orders list and sidebar first paint +Previous: fix(142): preselect polkurier shipment mapping Branch: main ### Skill Audit (Phase 139) @@ -69,6 +69,12 @@ Branch: main |----------|---------|-------| | `sonar-scanner` | gap documented | Attempted after APPLY with `sonar-scanner --version`; CLI is not available in PATH. | +### Skill Audit (Phase 143) + +| Expected | Invoked | Notes | +|----------|---------|-------| +| `sonar-scanner` | gap documented | Attempted after APPLY with `sonar-scanner --version`; CLI is not available in PATH. | + ### Skill Audit (Phase 129) | Expected | Invoked | Notes | @@ -142,6 +148,7 @@ Branch: main - Phase 139-01 fresh scan found 648 OPEN BLOCKER/CRITICAL/MAJOR issues; final scan after cleanup found 605. Delivery status target files are clean; `OrdersStatisticsRepository` still needs a class split for `php:S1448`. - Phase 139-02 final scan found 495 OPEN BLOCKER/CRITICAL/MAJOR issues. `php:S4833` dropped to 3 and selected `php:S112` generic exception clusters were replaced with typed exceptions. - Phase 141 grouped `/settings/integrations` into presentation-only sections: marketplace, couriers and other. Provider row contracts, routes and settings pages remain unchanged. +- Phase 143 removed the descriptive intro card from `/orders/list` and added desktop sidebar pre-hydration through `html.has-collapsed-sidebar` so saved collapsed state applies before first paint. ### Blockers / Concerns @@ -153,6 +160,7 @@ Branch: main - Phase 139 APPLY: local PATH still does not contain `sonar-scanner`, but the official Windows x64 scanner was downloaded to `%TEMP%` and used successfully. `vendor/bin/phpunit` remains unavailable because `vendor/` is missing and Composer is not installed in PATH. - Phase 140 APPLY: manual UI smoke was not run because local app/DB session was not started; Sonar scan could not run because `sonar-scanner` is unavailable. - Phase 141 APPLY: manual UI smoke was not run because local app/browser session was not started; Sonar scan could not run because `sonar-scanner` is unavailable. +- Phase 143 APPLY: manual UI smoke was not run because local app/browser session was not started; Sonar scan could not run because `sonar-scanner` is unavailable. - Obsolete Phase 140+ debt plans were removed from the active roadmap on 2026-05-18 by operator decision; performance/debt items can be reintroduced later only if still relevant. ### Deferred Issues @@ -171,6 +179,9 @@ Branch: main - Phase 142 follow-up: manual smoke `/orders/1164/shipment/prepare` -> potwierdz, ze mapowanie shopPRO -> Polkurier preselectuje przewoznika i usluge. - Phase 142 follow-up: `composer install` / przywroc `vendor/`, potem uruchom `vendor/bin/phpunit tests/Unit/ShipmentPreparePolkurierMappingTest.php`. - Phase 142 follow-up: uruchom SonarQube scan po przywroceniu `sonar-scanner` w PATH albo ponownym pobraniu oficjalnego scanner fallback. +- Phase 143 follow-up: manual smoke `/orders/list` -> potwierdz brak boksu "Zamowienia / Kompaktowa lista..." oraz status panel/table layout. +- Phase 143 follow-up: manual smoke desktop sidebar -> ustaw `localStorage.sidebarCollapsed='1'`, odswiez strone i potwierdz brak widocznego expanded-to-collapsed flash. +- Phase 143 follow-up: uruchom SonarQube scan po przywroceniu `sonar-scanner` w PATH albo ponownym pobraniu oficjalnego scanner fallback. - Phase 138 manual smoke: test a real SMTP SSL/STARTTLS mailbox in strict mode; test invalid and valid e-mail/SMS template saves in UI. - Manualne testy AC-1..AC-7 dla Phase 112 na zywej bazie (XAMPP online). - Backfill zamowienia #882 - operator robi recznie po wdrozeniu (poza zakresem planu). diff --git a/.paul/changelog/2026-05-18.md b/.paul/changelog/2026-05-18.md index ea2ecb8..69cb28c 100644 --- a/.paul/changelog/2026-05-18.md +++ b/.paul/changelog/2026-05-18.md @@ -16,6 +16,10 @@ - Formularz przygotowania przesylki rozpoznaje `provider='polkurier'`, pokazuje panel Polkuriera i zaznacza zapisana usluge. - Dodano test regresyjny renderowania widoku dla mapowania Polkuriera. - Gap: PHPUnit i SonarQube scan Phase 142 pozostaja do wykonania po przywroceniu `vendor/` i `sonar-scanner`. +- [Phase 143, Plan 01] Usunieto opisowy boks "Zamowienia / Kompaktowa lista..." z `/orders/list`. +- Dodano pre-hydration klasy `html.has-collapsed-sidebar`, aby zapisany zwiniety sidebar byl schowany od pierwszego renderu. +- Zachowano runtime toggle sidebaru i mobilne slide-in menu; pre-hydration compact state jest ograniczony do desktopu. +- Gap: manualny smoke UI i SonarQube scan Phase 143 pozostaja do wykonania po uruchomieniu app/browser session i przywroceniu `sonar-scanner`. ## Zmienione pliki @@ -39,5 +43,11 @@ - `.paul/phases/141-integrations-hub-grouped-sections/141-01-SUMMARY.md` - `.paul/phases/142-polkurier-shipment-prepare-prefill/142-01-PLAN.md` - `.paul/phases/142-polkurier-shipment-prepare-prefill/142-01-SUMMARY.md` +- `.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-PLAN.md` +- `.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md` +- `resources/views/layouts/app.php` +- `resources/views/orders/list.php` - `resources/views/shipments/prepare.php` +- `resources/scss/app.scss` +- `public/assets/css/app.css` - `tests/Unit/ShipmentPreparePolkurierMappingTest.php` diff --git a/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-PLAN.md b/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-PLAN.md new file mode 100644 index 0000000..e3df2ba --- /dev/null +++ b/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-PLAN.md @@ -0,0 +1,160 @@ +--- +phase: 143-orders-list-sidebar-ui-hotfix +plan: 01 +type: execute +wave: 1 +depends_on: [] +files_modified: + - resources/views/orders/list.php + - resources/views/layouts/app.php + - resources/scss/app.scss + - public/assets/css/app.css + - DOCS/ARCHITECTURE.md + - DOCS/TECH_CHANGELOG.md +autonomous: true +delegation: off +--- + + +## Goal +Usunac niepotrzebny boks naglowka z `/orders/list` oraz wyeliminowac migotanie zwijanego sidebaru po odswiezeniu strony. + +## Purpose +Lista zamowien jest glownym ekranem operacyjnym, wiec powinna startowac od danych i filtrow bez dodatkowego opisu. Sidebar ma respektowac zapamietany stan juz przy pierwszym renderze, zeby UI nie wykonywal widocznej animacji "pokaz i schowaj". + +## Output +Zmieniony widok listy zamowien, layout aplikacji z pre-hydration state dla sidebaru, przebudowany CSS oraz krotka aktualizacja dokumentacji technicznej. + + + + +- No clarifications needed - zakres jest jednoznaczny: usunac wskazany boks z `/orders/list`; zwiniety sidebar ma byc schowany od razu po odswiezeniu, gdy `localStorage.sidebarCollapsed === '1'`. + + +## Project Context +@.paul/PROJECT.md +@.paul/ROADMAP.md +@.paul/STATE.md +@AGENTS.md +@DOCS/ARCHITECTURE.md +@DOCS/DB_SCHEMA.md + +## Source Files +@resources/views/orders/list.php +@resources/views/layouts/app.php +@resources/scss/app.scss +@public/assets/css/app.css +@DOCS/ARCHITECTURE.md +@DOCS/TECH_CHANGELOG.md + + + +No specialized flows required for APPLY. `.paul/SPECIAL-FLOWS.md` lists SonarQube as required after APPLY/before UNIFY; run it if the CLI is available and document the gap if it is not. + + + + +## AC-1: Orders List Header Box Removed +```gherkin +Given operator opens /orders/list +When the orders list view renders +Then the boks containing "Zamowienia" and "Kompaktowa lista zamowien oparta o lokalna baze orderPRO." is not present +And the status panel, filters, alerts and orders table still render normally +``` + +## AC-2: Collapsed Sidebar Has No Refresh Flash +```gherkin +Given localStorage.sidebarCollapsed is "1" +When any authenticated page is refreshed on desktop +Then the sidebar is visually collapsed from first paint +And it does not animate from expanded to collapsed during page load +``` + +## AC-3: Sidebar Interactions Still Work +```gherkin +Given the authenticated app layout is loaded +When the operator toggles the sidebar or uses the mobile hamburger menu +Then the collapsed state is saved/restored on desktop +And the mobile slide-in menu behavior remains unchanged +``` + + + + + + + Task 1: Remove orders list intro card + resources/views/orders/list.php, resources/scss/app.scss, public/assets/css/app.css + + Remove the top card/box that renders the orders title and description from `resources/views/orders/list.php`. + Keep the warning alert for `$errorMessage` visible above the shared table component, but do not wrap it in the removed intro card. + Remove or neutralize now-unused `.orders-list-page` styling only if it becomes dead after the markup change. + Rebuild `public/assets/css/app.css` from SCSS if SCSS changes are made. + + Open `/orders/list` or inspect rendered markup: the exact description text is absent while `components/table-list` and `components/order-status-panel` remain present. Run `C:\xampp\php\php.exe -l resources/views/orders/list.php`. + AC-1 satisfied. + + + + Task 2: Apply saved sidebar collapse before first paint + resources/views/layouts/app.php, resources/scss/app.scss, public/assets/css/app.css + + Add a small inline script in the document head before the CSS links. It should read `localStorage.sidebarCollapsed` and add an HTML class when the saved value is `1`. + Extend sidebar SCSS so that the pre-hydration HTML class applies the same compact sidebar layout as `.sidebar.is-collapsed` before the main footer script runs. Avoid changing mobile transform behavior. + Update the existing footer sidebar script so it synchronizes the real `.is-collapsed` class with the pre-hydration state and removes the temporary HTML class after initialization. Keep the existing toggle, details expansion, mobile backdrop and link-close behavior. + Rebuild `public/assets/css/app.css`. + + In browser devtools set `localStorage.sidebarCollapsed='1'`, refresh an authenticated page, and confirm the sidebar is collapsed immediately with no visible expanded-to-collapsed transition. Run `C:\xampp\php\php.exe -l resources/views/layouts/app.php` and `npm run build:css`. + AC-2 and AC-3 satisfied. + + + + Task 3: Update technical documentation + DOCS/ARCHITECTURE.md, DOCS/TECH_CHANGELOG.md + + Add a concise architecture note describing the sidebar pre-hydration class/localStorage contract and the simplified orders list header. + Add a dated technical changelog entry explaining what changed and why. + Do not modify `DOCS/DB_SCHEMA.md` because this plan has no schema changes. + + Inspect docs for the new Phase 143 note and confirm no DB schema sections were changed. + Documentation requirement satisfied for AC-1 through AC-3. + + + + + + +## DO NOT CHANGE +- database/migrations/* - no database/schema work in this UI hotfix. +- src/Modules/Orders/* - no backend query, controller or repository changes needed. +- resources/views/components/table-list.php - filters/table behavior stays as-is. +- Mobile sidebar semantics beyond preserving existing hamburger/backdrop behavior. + +## SCOPE LIMITS +- Do not redesign the orders list table or status panel. +- Do not add dependencies or new frontend build tooling. +- Do not remove translation keys unless a separate cleanup is requested. + + + + +Before declaring plan complete: +- [ ] `C:\xampp\php\php.exe -l resources/views/orders/list.php` +- [ ] `C:\xampp\php\php.exe -l resources/views/layouts/app.php` +- [ ] `npm run build:css` +- [ ] Manual/browser smoke for `/orders/list`: intro box absent, table/status panel present. +- [ ] Manual/browser smoke for collapsed sidebar refresh: no expanded flash. +- [ ] SonarQube scan attempted if `sonar-scanner` is available; gap documented if unavailable. + + + +- The indicated "Zamowienia / Kompaktowa lista..." box is gone from `/orders/list`. +- Previously collapsed desktop sidebar stays collapsed from first paint after refresh. +- Sidebar toggle and mobile hamburger interactions continue to work. +- CSS build and PHP lint checks pass. +- Documentation is updated without schema changes. + + + +After completion, create `.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md`. + diff --git a/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md b/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md new file mode 100644 index 0000000..cf42db6 --- /dev/null +++ b/.paul/phases/143-orders-list-sidebar-ui-hotfix/143-01-SUMMARY.md @@ -0,0 +1,93 @@ +--- +phase: 143-orders-list-sidebar-ui-hotfix +plan: 01 +subsystem: ui +tags: [orders-list, sidebar, scss, layout] +requires: + - phase: 142-polkurier-shipment-prepare-prefill + provides: Completed prior hotfix milestone state +provides: + - Removed orders list intro card + - Sidebar collapsed-state pre-hydration before first paint +affects: [orders-list, app-layout, frontend-ui] +tech-stack: + added: [] + patterns: [html pre-hydration class for persisted UI state] +key-files: + created: [] + modified: + - resources/views/orders/list.php + - resources/views/layouts/app.php + - resources/scss/app.scss + - public/assets/css/app.css + - DOCS/ARCHITECTURE.md + - DOCS/TECH_CHANGELOG.md +key-decisions: + - "Use html.has-collapsed-sidebar before CSS loads to avoid expanded sidebar flash." + - "Keep pre-hydration collapsed rules desktop-only so mobile slide-in behavior stays unchanged." +patterns-established: + - "Persisted layout state that affects first paint can be bridged through a temporary html class, then synchronized by the runtime script." +duration: 6min +started: 2026-05-18T11:44:00+02:00 +completed: 2026-05-18T11:50:00+02:00 +--- + +# Phase 143 Plan 01 Summary: Orders List Sidebar UI Hotfix + +## Outcome + +Implemented the approved UI hotfix for `/orders/list` and the authenticated app sidebar. + +## Performance + +| Metric | Value | +|--------|-------| +| Duration | ~6 minutes | +| Started | 2026-05-18 11:44 Europe/Warsaw | +| Completed | 2026-05-18 11:50 Europe/Warsaw | +| Tasks | 3 completed | +| Files modified | 8 plus PAUL state files | + +## Acceptance Criteria Results + +| Criterion | Status | Notes | +|-----------|--------|-------| +| AC-1: Orders List Header Box Removed | Pass | Intro card removed from `resources/views/orders/list.php`; targeted `rg` no longer finds the description or `.orders-list-page` in source/SCSS. | +| AC-2: Collapsed Sidebar Has No Refresh Flash | Pass | Head script sets `html.has-collapsed-sidebar` before CSS loads; SCSS mirrors collapsed rules for first paint. | +| AC-3: Sidebar Interactions Still Work | Pass | Footer script still owns toggle/persistence/mobile menu behavior and removes the temporary HTML class after initialization. | + +## Changes + +- Removed the intro card from `resources/views/orders/list.php` that showed `Zamowienia` and `Kompaktowa lista zamowien oparta o lokalna baze orderPRO.`. +- Kept the orders-list warning alert above the shared table component, without the removed intro card wrapper. +- Added a head-time pre-hydration script in `resources/views/layouts/app.php` that marks `` with `has-collapsed-sidebar` when `localStorage.sidebarCollapsed === '1'`. +- Updated `resources/scss/app.scss` so the temporary HTML class applies the same compact desktop sidebar dimensions before the footer script initializes. +- Kept mobile menu behavior isolated by applying the pre-hydration compact state only at desktop widths. +- Rebuilt `public/assets/css/app.css`. +- Updated `DOCS/ARCHITECTURE.md` and `DOCS/TECH_CHANGELOG.md`. + +## Verification + +| Check | Result | +|-------|--------| +| `C:\xampp\php\php.exe -l resources/views/orders/list.php` | Pass | +| `C:\xampp\php\php.exe -l resources/views/layouts/app.php` | Pass | +| `npm run build:css` | Pass | +| `rg -n "Kompaktowa lista zamowien oparta o lokalna baze orderPRO\|orders-list-page"` targeted source check | Pass - removed from `orders/list.php` and SCSS | +| `git diff --check` targeted files | Pass - only line-ending warnings from Git | +| `sonar-scanner --version` | Gap - CLI not available in PATH | + +## Notes + +- No database schema changes or migrations were introduced. +- Browser/live smoke was not run because no local authenticated app session was started in this turn. + +## Deviations from Plan + +- Summary was created during APPLY, then enriched during UNIFY with PAUL frontmatter and AC reconciliation. +- No scope changes were introduced. + +## Next Phase Readiness + +- Phase 143 is complete and this one-phase milestone can be closed. +- No blockers for a future milestone. diff --git a/DOCS/ARCHITECTURE.md b/DOCS/ARCHITECTURE.md index b47ef1d..2a6c145 100644 --- a/DOCS/ARCHITECTURE.md +++ b/DOCS/ARCHITECTURE.md @@ -107,6 +107,12 @@ HTTP Request ## Frontend Enhancement Modules +### Orders List and Sidebar State +- `/orders/list` renders the reusable order status panel and shared `components/table-list` directly; the previous descriptive intro card was removed so the operational table starts higher on the screen. +- The desktop sidebar collapse state is stored in `localStorage.sidebarCollapsed`. +- `resources/views/layouts/app.php` reads that value in the document head and adds `html.has-collapsed-sidebar` before CSS loads. `resources/scss/app.scss` mirrors the compact sidebar rules for that pre-hydration class, so a saved collapsed sidebar is collapsed on first paint instead of animating after the footer script runs. +- The footer sidebar script still owns runtime interactions: it applies/removes `.sidebar.is-collapsed`, updates the button labels, closes open `details`, persists the state, and then removes the temporary HTML pre-hydration class. + ### Checkbox Multiselect (`public/assets/js/modules/checkbox-multiselect.js`) - Loaded globally from `resources/views/layouts/app.php`. - Enhances native `