Files
adsPRO/.paul/phases/10-select2-global-search/10-01-SUMMARY.md
Jacek Pyziak a1fcbbd0d2 UI: globalny auto-init Select2 z wyszukiwarka dla selectow >4 opcji
- Nowy libraries/adspro-select2-autoinit.js (auto-init na document.ready + ajaxComplete debounce 150ms)
- Wyszukiwarka odblokowana dla "Grupa reklam", "Kampania", "Klient" na /campaign_terms (data-adspro-select2="true")
- Globalne style Select2 w layout/style.scss i style.css (uogolnione z .products-page)
- Usuniety duplikat: blok CSS .products-page .select2-* i funkcja init_products_scope_select_search() w products

PAUL: phase 10-select2-global-search complete (plan 10-01)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:13:06 +02:00

5.6 KiB

phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, duration, started, completed
phase plan subsystem tags requires provides affects tech-stack key-files key-decisions patterns-established duration started completed
10-select2-global-search 01 ui
select2
jquery
ui
frontend
autoinit
phase provides
existing layout Select2 library already loaded via layout-logged.php
Globalny auto-init Select2 dla wszystkich <select> >4 opcji w layout-logged
Wyszukiwarka w selectach na /campaign_terms (klient, kampania, grupa reklam)
Ujednolicony styl Select2 (poprzednio tylko .products-page)
wszystkie przyszle moduly UI uzywajace <select>
added patterns
Opt-in/opt-out atrybuty: data-adspro-select2="true|false", klasa .no-select2
Globalny ajaxComplete debounce do re-initu po dynamicznych zmianach DOM
created modified
libraries/adspro-select2-autoinit.js
templates/site/layout-logged.php
layout/style.scss
layout/style.css
templates/products/main_view.php
templates/campaign_terms/main_view.php
Globalny auto-init zamiast lokalnych init() w kazdym module
Prog >4 opcji jako domyslny + opt-in atrybutem dla dynamicznych selectow
AllowClear automatyczny gdy pierwsza option ma value=""
data-adspro-select2 attribute jako opt-in dla selectow ladowanych AJAX-em
Globalne style Select2 w layout/style.scss (bez prefiksu .products-page)
~20min 2026-05-16T13:20:00Z 2026-05-16T13:40:00Z

Phase 10 Plan 01: Select2 global search Summary

Globalny auto-init Select2 z polem wyszukiwania dla kazdego z >4 opcjami; konkretnie odblokowane wyszukiwanie w "Grupa reklam" na /campaign_terms. Performance Metric Value Duration ~20 min Started 2026-05-16T13:20:00Z Completed 2026-05-16T13:40:00Z Tasks 4 (3 auto + 1 checkpoint approved) Files modified 5 + 1 created Acceptance Criteria Results Criterion Status Notes AC-1: Select "Grupa reklam" ma wyszukiwarke Pass Potwierdzone przez user "approved" AC-2: Auto-init dla selectow >4 opcji Pass Implementacja w libraries/adspro-select2-autoinit.js AC-3: AllowClear dla selectow z pusta opcja Pass Wykrywane przez first_value === "" AC-4: Styl spojny z dotychczasowym /products Pass Block .products-page .select2-* usuniety, style przeniesione do globalnego scope AC-5: Brak regresji indywidualnych Select2 Pass googleCategory.select2(...) zachowany; auto-init sprawdza .data('select2') Accomplishments Globalny moduł adspro-select2-autoinit.js z window.adsproSelect2Init() + auto-trigger na document.ready i ajaxComplete (debounce 150ms) Wyszukiwarka dla 3 selectów na /campaign_terms (klient, kampania, grupa reklam) — odblokowane przez data-adspro-select2="true" Eliminacja duplikacji: ~80 linii (CSS + funkcja init) usunięte z templates/products/main_view.php Globalne style Select2 (height 38, radius 6, focus #6690f4) w layout/style.scss i layout/style.css Files Created/Modified File Change Purpose libraries/adspro-select2-autoinit.js Created Modul auto-init Select2 + helper window.adsproSelect2Init templates/site/layout-logged.php Modified Podpiecie skryptu auto-init po Select2 layout/style.scss Modified Globalne reguly Select2 (źródło) layout/style.css Modified Globalne reguly Select2 (build) wstrzykniete przed sourceMappingURL templates/products/main_view.php Modified Usuniety blok CSS .products-page .select2-* i funkcja init_products_scope_select_search() templates/campaign_terms/main_view.php Modified data-adspro-select2="true" na 3 selectach + wywolania window.adsproSelect2Init() po AJAX Decisions Made Decision Rationale Impact Threshold >4 opcji Krotsze listy nie potrzebuja wyszukiwarki Selecty 2-4 opcji pozostaja natywne Opt-in data-adspro-select2="true" dla AJAX Dynamiczne selecty zaczynaja z 0-1 opcji Wymusza init niezaleznie od chwilowej liczby opcji Debounce 150ms na ajaxComplete Multi-AJAX flow (load_campaigns -> load_ad_groups) Jeden batch init zamiast wielu kolejnych Zachowac $googleCategory.select2(...) w products Wlasny placeholder, data: cats, allowClear Auto-init pomija dzieki $.data('select2') check Deviations from Plan Summary Type Count Impact Auto-fixed 0 - Scope additions 0 - Deferred 0 - Total impact: Plan executed exactly as written. Deferred Items None — plan executed exactly as written. Issues Encountered Issue Resolution layout/style.css jest minified single-line z sourceMappingURL na koncu Wstrzykniecie nowych regul przed komentarzem sourceMappingURL via Python helper (zachowano BOM i mape) Next Phase Readiness Ready: Auto-init dziala na calym layout-logged — przyszle moduly z <select> >4 opcji dostana wyszukiwarke za darmo Wzorzec data-adspro-select2="true" dostepny dla dynamicznie ladowanych selectow Concerns: Style globalne moga konfliktowac z innymi miejscami uzywajacymi Select2 (np. jconfirm-box, adspro-dialog-box maja juz swoje overrides — sprawdzic ewentualne kolizje w czasie rzeczywistego uzytkowania) Jezeli layout/style.scss zostanie przebudowane przez sass, blok // === Select2 global overrides === zostanie zachowany w scss, ale .css wygenerowany ponownie zastapi wstrzykniety blok — przy nastepnym budowaniu trzeba zbudowac z scss Blockers: None Phase: 10-select2-global-search, Plan: 01 Completed: 2026-05-16