--- phase: 10-select2-global-search plan: 01 subsystem: ui tags: [select2, jquery, ui, frontend, autoinit] requires: - phase: existing layout provides: Select2 library already loaded via layout-logged.php provides: - Globalny auto-init Select2 dla wszystkich ] tech-stack: 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" key-files: created: - libraries/adspro-select2-autoinit.js modified: - templates/site/layout-logged.php - layout/style.scss - layout/style.css - templates/products/main_view.php - templates/campaign_terms/main_view.php key-decisions: - "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=\"\"" patterns-established: - "data-adspro-select2 attribute jako opt-in dla selectow ladowanych AJAX-em" - "Globalne style Select2 w layout/style.scss (bez prefiksu .products-page)" duration: ~20min started: 2026-05-16T13:20:00Z completed: 2026-05-16T13:40:00Z --- # Phase 10 Plan 01: Select2 global search Summary **Globalny auto-init Select2 z polem wyszukiwania dla kazdego ` >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*