Skip to content

Allow bulk enabling/disabling experiments in groups#379

Closed
theskinnyghost wants to merge 3 commits intoWordPress:feature/settings-toggle-autosavefrom
theskinnyghost:feature/settings-toggle-all
Closed

Allow bulk enabling/disabling experiments in groups#379
theskinnyghost wants to merge 3 commits intoWordPress:feature/settings-toggle-autosavefrom
theskinnyghost:feature/settings-toggle-all

Conversation

@theskinnyghost
Copy link
Copy Markdown

@theskinnyghost theskinnyghost commented Apr 8, 2026

What?

Closes #334

Add controls to bulk enable / disable all features in an experiment group.

Branched off #376 which contains the work of swapping checkboxes with toggles. The issue mentioned using a checkbox but since we've moved away and using toggles now I thought a ToggleControl would be more appropriate.

Testing Instructions

  • Visit the AI settings page and verify a new section is shown on the group headings and should contain a toggle to bulk manage all features in that group
  • The toggle should allow enabling / disabling all features at once. If the group has a mixed state (i.e. some features enabled, some features disabled) then the toggle should act as "Enable All".
  • Settings should be auto-saved with a contextual snackbar message showing
  • If the global AI toggle is disable, the bulk manage toggle should become disabled
  • Run E2E tests: npm run test:e2e -- --grep "Plugin settings"
Open WordPress Playground Preview

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 8, 2026

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @raftaar1191.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Unlinked contributors: raftaar1191.

Co-authored-by: theskinnyghost <theskinnyghost@git.wordpress.org>
Co-authored-by: jeffpaul <jeffpaul@git.wordpress.org>
Co-authored-by: dkotter <dkotter@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.63%. Comparing base (93268ad) to head (c3cdb82).

Additional details and impacted files
@@                         Coverage Diff                         @@
##             feature/settings-toggle-autosave     #379   +/-   ##
===================================================================
  Coverage                               62.63%   62.63%           
  Complexity                                680      680           
===================================================================
  Files                                      49       49           
  Lines                                    3501     3501           
===================================================================
  Hits                                     2193     2193           
  Misses                                   1308     1308           
Flag Coverage Δ
unit 62.63% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jeffpaul jeffpaul added this to the 0.7.0 milestone Apr 8, 2026
@jeffpaul jeffpaul added the [Status] Blocked Used to indicate unable to move forward label Apr 8, 2026
@jeffpaul
Copy link
Copy Markdown
Member

jeffpaul commented Apr 8, 2026

Flagging as blocked to determine if we want to wait for #376 to get merged in or if we're ok merging this PR down into that one (defer to @dkotter for preference on approach here)

@jeffpaul
Copy link
Copy Markdown
Member

jeffpaul commented Apr 8, 2026

I'm not certain the placement of the toggle and the grey section background color feels quite right, but the bigger concern I have is that the toggle and text label don't quite feel right.

Screenshot 2026-04-08 at 10 40 43 AM Screenshot 2026-04-08 at 10 40 33 AM

Perhaps something more like how the paragraph block in the post editor handles typography settings where the primary label doesn't change but the description does?

Screenshot 2026-04-08 at 10 42 17 AM

So perhaps here that would be...

after sitting here with this for a bit, I think the best approach might actually be buttons/links for each state, especially since you can be in a state where you've enabled a couple experiments but don't have an easy way to disable all if the toggle hasn't already been flipped to enable all?

So perhaps Enable all / Disable all or Activate all and Deactivate all as link options at the en of the section description text or as buttons at the bottom of each section?

@dkotter
Copy link
Copy Markdown
Collaborator

dkotter commented Apr 8, 2026

Flagging as blocked to determine if we want to wait for #376 to get merged in or if we're ok merging this PR down into that one (defer to @dkotter for preference on approach here)

Ideally #376 gets merged in prior to 0.7.0 going out so I think we just hold on this one until that is merged and this can then be rebased off of develop. So a blocked state makes sense here.

especially since you can be in a state where you've enabled a couple experiments but don't have an easy way to disable all if the toggle hasn't already been flipped to enable all?

Yeah, I think this is key and what I would expect. With the current approach if I have a couple experiments enabled I can't bulk disable them all without flipping the toggle twice.

So perhaps Enable all / Disable all or Activate all and Deactivate all as link options at the en of the section description text or as buttons at the bottom of each section?

I think this will be a nicer, not so "in your face" approach. Was trying to find an example in core to provide as inspiration but didn't find anything in a quick search. But a simple links at the bottom of each section that allow you to quickly enable or disable everything in that section makes sense to me.

@jeffpaul jeffpaul modified the milestones: 0.7.0, 0.8.0 Apr 8, 2026
@dkotter dkotter deleted the branch WordPress:feature/settings-toggle-autosave April 9, 2026 13:33
@dkotter dkotter closed this Apr 9, 2026
@dkotter
Copy link
Copy Markdown
Collaborator

dkotter commented Apr 9, 2026

@theskinnyghost Looks like this got autoclosed when I merged #376 in and I don't see a way for me to reopen. May need to recreate this PR, unless you can reopen it?

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

Labels

[Status] Blocked Used to indicate unable to move forward

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve Experiments UI for scalability with categorization and bulk management

3 participants