Skip to content

fix(themes): skin jQuery multiselect in Deepness and fix 3.x markup in four themes (develop) - #8443

Merged
TheWitness merged 2 commits into
developfrom
fix/theme-multiselect-skin-develop
Oct 22, 2026
Merged

TheWitness merged 2 commits into
developfrom
fix/theme-multiselect-skin-develop

Conversation

@TheWitness

@TheWitness TheWitness commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Summary

Fixes the core theme gap noted in Cacti/plugin_flowview#298 (the Deepness theme does not skin jQuery multiselect). It also fixes a related multiselect defect found while checking every theme on develop.

Deepness

Deepness's main.css already repaints select2 onto its --dp-* palette. It never repaints the jQuery multiselect button or popup menu. Those fell through to:

  • the textured grey .ui-widget-content and gradient .ui-widget-header surfaces from jquery-ui.css
  • the generic button rule, which forces uppercase text

so multiselect controls rendered like the Dark theme.

The button, menu, header, labels (hover, active and disabled) and group labels are now repainted to match the select2 colors. The button's corners follow the theme's .ui-corner-all { border-radius: 0px !important } rule, like the other jQuery UI widgets. They use develop's select2 colors (--dp-header for hover, --dp-panel-alt for selected). The existing .ui-multiselect-header rule now sets a full background so the jQuery UI gradient image no longer shows through.

Cacti, Carrot, Hollyberry, Raspberry

These four themes ship the old 1.x jquery.multiselect.css, while include/js/jquery.multiselect.js is 3.x. The 3.x optgroup markup therefore rendered with:

  • list bullets and a nested <ul> indent
  • compounded 0.9em option text
  • an unstyled group label

The missing 3.x rules are added (list-style, the optgroup font-size and padding, label indent, single-select indent, .ui-multiselect-grouplabel). Colors still come from each theme's own jquery-ui.css.

All changes extend each theme's main.css. The stock jquery.multiselect.css files are not modified.

CHANGELOG and tests

  • The entry is in changelog.d/8443.issue, as develop expects fragments rather than direct CHANGELOG edits.
  • tests/e2e/tests/develop-theme-correctness.spec.ts adds Chromium computed-style tests. They render the jquery.multiselect 3.x button and menu markup against Deepness and the four themes above, with each theme's stock jquery.multiselect.css loaded first. The changed-CSS coverage gate reports 143/143 changed lines covered.

Verification

Rendered the multiselect (open menu, hovered button), select2 and selectmenu in a harness that loads each theme's CSS in html_common_header() order. Compared before and after screenshots:

  • deepness: the multiselect now matches select2.
  • cacti, carrot, hollyberry, raspberry: no bullets, full-size option text, and a centered bold group label like the other themes.
  • dark, modern, paper-plane, paw, sunrise: unchanged; already consistent through their own jquery-ui.css.
  • midwinter: unchanged; already skinned through jquery-ui.midwinter.css (checked in dark and light).

1.2.x counterpart: #8442 (only Deepness is affected there).

…n four themes

Deepness: main.css repainted select2 onto its --dp-* palette but never
the jQuery multiselect button or popup menu, so those fell through to the
jquery-ui.css textured surfaces and the generic uppercase button rule and
looked like the Dark theme. Repaint them to match the select2 controls.

Cacti, Carrot, Hollyberry, Raspberry: these themes ship the old 1.x
jquery.multiselect.css while include/js/jquery.multiselect.js is 3.x, so
optgroup menus showed list bullets, a nested indent, compounded 0.9em
option text and an unstyled group label. Add the missing 3.x rules.

All changes extend each theme's main.css; the stock
jquery.multiselect.css files are left untouched.

Reported in Cacti/plugin_flowview#298.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 22, 2026 16:35
@TheWitness
TheWitness requested a review from a team as a code owner October 22, 2026 16:35
@TheWitness
TheWitness requested review from cigamit and removed request for a team October 22, 2026 16:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Deepness’s existing important corner reset overrides the new button radius, preventing the intended match with select2.

1 open issue
What changed in this PR

Updates Cacti’s theme styles so jQuery multiselect matches Deepness’s palette and renders bundled 3.x markup correctly in four other themes.

Changes:

  • Styles Deepness multiselect buttons, menus, headers, and option states.
  • Adds missing optgroup and label rules to Cacti, Carrot, Hollyberry, and Raspberry without modifying stock plugin stylesheets.
  • Records both fixes in the changelog.
File Description
include/​themes/​raspberry/​main.css Adds multiselect 3.x layout rules.
include/​themes/​hollyberry/​main.css Adds multiselect 3.x layout rules.
include/​themes/​deepness/​main.css Applies Deepness colors and control styling to multiselect.
include/​themes/​carrot/​main.css Adds multiselect 3.x layout rules.
include/​themes/​cacti/​main.css Adds multiselect 3.x layout rules.
CHANGELOG Documents the theme fixes.

Review effort: Balanced

Comment thread include/themes/deepness/main.css Resolved
- Move the CHANGELOG entries into changelog.d/8443.issue, as develop
  expects fragments rather than direct CHANGELOG edits.
- Drop the Deepness multiselect border-radius; .ui-corner-all forces
  border-radius with !important in this theme, so it never applied.
- Add Chromium computed-style tests for the new multiselect rules in
  Deepness, Cacti, Carrot, Hollyberry and Raspberry so the changed CSS
  lines are exercised by the theme correctness suite.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sonarqubecloud

Copy link
Copy Markdown

@TheWitness
TheWitness merged commit a9c73cf into develop Oct 22, 2026
59 of 63 checks passed

@somethingwithproof somethingwithproof left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TheWitness

The Deepness part looks good.

Issue: the 3.x backfill for Cacti, Carrot, Hollyberry and Raspberry leaves out .ui-multiselect-columns { display: inline-block; vertical-align: top; }. Six develop call sites use groupColumns: true: the consolidation function picker in data_source_profiles.php and the schedule pickers in lib/api_scheduler.php. In those four themes each item still renders as a full-width block. On the data source profile picker (height: 28, menuWidth: 400) that means one visible option and a scrollbar instead of a row of 90px items. The collapser rules (groupsCollapsable) and the nowrap rules are missing too, though nothing in core uses those today. The new spec doesn't render groupColumns markup, so it doesn't catch this.

Suggestion: the four themes ship the same 1.x jquery.multiselect.css, and modern, dark and deepness ship the same 3.x file. Copying that 3.x file into the four themes fixes the gap above in one step, replacing four identical 35-line blocks in main.css. Colors would still come from each theme's jquery-ui.css.

Nit: computedStyles() could use getComputedStyle(element).getPropertyValue('background-color') with kebab-case names and drop the as any.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants