Swap Admin4 multiselect plugin - #3831
Conversation
1690730 to
71bdc8b
Compare
|
This is an intersting bug. AI says
|
There was a problem hiding this comment.
Pull request overview
This PR replaces the Admin UI’s group multi-select implementation based on Tom Select with bootstrap-multiselect to better support the custom “All” / “None” / “Apply” actions used in the groups tables.
Changes:
- Remove Tom Select vendor assets and dependency; add
bootstrap-multiselectvendor assets and dependency. - Rework
utils.createGroupSelect()and group table scripts to initialize and control the new multiselect. - Update CSS and page includes to load the new plugin and adjust the actions box styling/positioning.
Reviewed changes
Copilot reviewed 12 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| vendor/tom-select/tom-select.complete.min.js | Removes Tom Select JS bundle from vendored assets. |
| vendor/tom-select/tom-select.bootstrap5.min.css.map | Removes Tom Select Bootstrap 5 sourcemap. |
| vendor/tom-select/tom-select.bootstrap5.min.css | Removes Tom Select Bootstrap 5 CSS. |
| vendor/bootstrap-multiselect/bootstrap-multiselect.min.js | Adds vendored Bootstrap Multiselect JS. |
| vendor/bootstrap-multiselect/bootstrap-multiselect.min.css | Adds vendored Bootstrap Multiselect CSS. |
| style/pi-hole.css | Renames actions box styles and adds positioning/visual overrides for the new dropdown. |
| scripts/lua/header.lp | Switches conditional plugin CSS include to Bootstrap Multiselect. |
| scripts/js/utils.js | Replaces Tom Select-based createGroupSelect() with a Bootstrap Multiselect-based implementation + wrapper. |
| scripts/js/groups-lists.js | Updates initialization and Apply-button wiring to use the new multiselect wrapper. |
| scripts/js/groups-domains.js | Updates initialization and Apply-button wiring to use the new multiselect wrapper. |
| scripts/js/groups-clients.js | Updates initialization and Apply-button wiring to use the new multiselect wrapper. |
| queries.lp | Replaces the Tom Select script include with Bootstrap Multiselect. |
| package.json | Adds bootstrap-multiselect dependency and removes tom-select. |
| package-lock.json | Locks bootstrap-multiselect and removes tom-select transitive entries. |
| groups.lp | Replaces Tom Select script include with Bootstrap Multiselect. |
| groups-lists.lp | Replaces Tom Select script include with Bootstrap Multiselect. |
| groups-domains.lp | Replaces Tom Select script include with Bootstrap Multiselect. |
| groups-clients.lp | Replaces Tom Select script include with Bootstrap Multiselect. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| .multiselect-floating-menu { | ||
| position: fixed; | ||
| inset: auto auto auto auto; | ||
| top: var(--multiselect-trigger-bottom); | ||
| left: var(--multiselect-trigger-left); | ||
| min-width: var(--multiselect-trigger-width); | ||
| max-width: calc(100vw - var(--multiselect-trigger-left) - 16px); | ||
| z-index: 1055; | ||
| } |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Signed-off-by: yubiuser <github@yubiuser.dev>
Signed-off-by: yubiuser <github@yubiuser.dev>
177998e to
f134d57
Compare
|
Conflicts have been resolved. |
Signed-off-by: yubiuser <github@yubiuser.dev>
f134d57 to
0726604
Compare


What does this PR aim to accomplish?:
Swap the TOM Select plugin with https://github.com/davidstutz/bootstrap-multiselect which has better support for our "All"/"None"/"Apply" buttons.
Documentation at https://davidstutz.github.io/bootstrap-multiselect
By submitting this pull request, I confirm the following:
git rebase)