Skip to content

Edit rule sets in their panel, block for a rule set from the query log - #433

Merged
drudge merged 9 commits into
mainfrom
claude/per-device-blocking-0lzpfb
Oct 12, 2026
Merged

drudge merged 9 commits into
mainfrom
claude/per-device-blocking-0lzpfb

Conversation

@drudge

@drudge drudge commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Before: The query log's Block and Allow only changed the lists that apply to everyone, so there was no way to block a domain for just one rule set from a query. Rule sets had an Edit dialog that covered only the name, the Blocking switch and the block lists. Their blocked and allowed domains were in the panel instead. Default had an Edit button and no delete button. The Add Device field used the browser's datalist, and the schedule form asked for a time zone.

After: When a query came from a device in a rule set, its Block and Allow are split buttons like Update Cluster's, sized alike to the wider of the two. The button reads Block for Warehouse, and its arrow offers Everyone instead; the pick is remembered. When only one side applies, it's a plain button, such as Allow for Everyone on an answered query. The Edit dialog is gone, so everything about a rule set changes in its panel:

  • a pencil beside the name renames it;
  • the Blocking switch and the Block Lists checkboxes save as soon as they change.

Default opens a panel with its block lists and keeps a locked delete button ("Can't delete Default"). Add Rule Set asks only for a name, then opens the new rule set's panel. The device fields on Add Device and Check a Domain are now a searchable list that shows each device's icon and address. Schedules use the time zone the console shows, which Settings names, so the form no longer asks for one.

How: policyService().Add already took a rule set name, and the query log form now passes rule_set. The update button's split button is now a shared .split-button with setupSplitButton in app.js (data-split-* hooks, data-split-remember for the remembered pick, data-split-unavailable to drop an action), and the query footer uses it with a form per side. The update button renders as before; scripts/browser/updates.cjs covers it. ruleSetService.Change replaces Save for panel edits and keeps whatever the edit doesn't touch. It backs the new routes /rule-sets/rename, /blocking and /lists. Default's panel is /blocked/rule-sets/Default, a name config already reserves. DevicePicker is a templ component with a small combobox in app.js. Forms marked data-keep-scroll keep the drawer's scroll position when the drawer is swapped.

Screenshots

Before is main, after is this branch. The before shots in the Rename / Edit row show the old Edit dialog. Both answered-query rows compare against the same main shot.

Laptop

Area Before (light) After (light) Before (dark) After (dark)
Rule Sets tab
Rule set panel
Rename / Edit
Default panel
Add Device picker
Add Rule Set
Schedule form
Blocked query
Answered query
Answered query, Block menu open
Phone
Area Before (light) After (light) Before (dark) After (dark)
Rule Sets tab
Rule set panel
Rename / Edit
Default panel
Add Device picker
Add Rule Set
Schedule form
Blocked query
Answered query
Answered query, Block menu open

The rule set Edit dialog is gone. The panel's title gets a rename pencil,
and its Blocking switch and block lists save as they change. Default opens
its own panel for its block lists and keeps a locked delete button. Add
Rule Set asks only for a name, then opens the new panel.

The Add Device and Check a Domain device fields list devices with their
icon and address instead of the browser's datalist. Schedules take the
console's time zone instead of asking for one, and the query panel offers
Allow for a rule set only on blocked queries.
…scroll

Block lists get a section heading like the panel's others. A Block or
Allow that names a rule set takes a full row on phones, and a panel form
that saves as it changes brings the panel back where it was scrolled.
drudge added a commit that referenced this pull request Oct 12, 2026
@drudge
drudge marked this pull request as ready for review October 12, 2026 03:13
drudge added a commit that referenced this pull request Oct 12, 2026
drudge added a commit that referenced this pull request Oct 12, 2026
drudge added a commit that referenced this pull request Oct 12, 2026
drudge added a commit that referenced this pull request Oct 12, 2026
@drudge
drudge merged commit c50dbd0 into main Oct 12, 2026
4 checks passed
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.

1 participant