Adds the Intel watch home widget and the watched systems modal #84

Merged
natemsz merged 2 commits from feat/widget-intel-watch into feat/notify-card-routing 2026-11-02 05:47:59 +00:00
Owner

Stacked on feat/notify-card-routing (Muse's notification and briefing card switches, head 6a5feac3); this PR builds on its CampSystems list and merges after it.

Intel watch is a plain new home widget (id intelwatch, default 2x2) that shows the latest filed intel for the account's watched systems, read through notifyPrefsFor in stored order and through the same accessible-channels intel read path and phrasing the system page uses, plus recent public kills involving the account's corporations at the largest size. Detail follows the widget's own stored size: area up to 2 shows the newest 2 reports; area 3 to 4 shows 5 reports and each watched system's gate states (the newest reading per gate); area 5 and up shows 8 reports, the gate states, and the corporation kills. A report about the gate between two watched systems appears once in the merged feed. With no watched systems the widget says so in plain words and offers the manage button.

The watched systems list no longer lives only in Settings. One modal (the site's EveSynapseModal machinery) edits it: current systems by name with a remove form each, and an add field that resolves names through the same SDE lookup the settings box used. Saves go to POST /settings/watched-systems and write only CampSystems through the existing prefs store; unknown names, duplicates and a full list (cap 10) are reported back, never silently dropped. The widget's Watched systems button opens the modal, and the Settings gate camp row now shows the count and a Manage watched systems button instead of the one-per-line box, with the rest of the row unchanged. A settings save that still carries the old camp_systems field parses it as before; a save without it leaves the stored list alone. The map star is a follow-up and is not in this PR.

CampSystems storage, parsing rules, the online gate and the card routing are untouched.

Test pins: two existing assertions record the new surface. The widget catalog order pin gains intelwatch in its merged position (after pulse), and the notification settings page pin in TestNotificationSettings now expects the modal opener (data-open-watched-modal) where it expected the camp box the swap removes. Every other assertion in the notification and briefing test files is unchanged, and the camp save, routing and briefing camp tests pass as written.

Stacked on feat/notify-card-routing (Muse's notification and briefing card switches, head 6a5feac3); this PR builds on its CampSystems list and merges after it. Intel watch is a plain new home widget (id intelwatch, default 2x2) that shows the latest filed intel for the account's watched systems, read through notifyPrefsFor in stored order and through the same accessible-channels intel read path and phrasing the system page uses, plus recent public kills involving the account's corporations at the largest size. Detail follows the widget's own stored size: area up to 2 shows the newest 2 reports; area 3 to 4 shows 5 reports and each watched system's gate states (the newest reading per gate); area 5 and up shows 8 reports, the gate states, and the corporation kills. A report about the gate between two watched systems appears once in the merged feed. With no watched systems the widget says so in plain words and offers the manage button. The watched systems list no longer lives only in Settings. One modal (the site's EveSynapseModal machinery) edits it: current systems by name with a remove form each, and an add field that resolves names through the same SDE lookup the settings box used. Saves go to POST /settings/watched-systems and write only CampSystems through the existing prefs store; unknown names, duplicates and a full list (cap 10) are reported back, never silently dropped. The widget's Watched systems button opens the modal, and the Settings gate camp row now shows the count and a Manage watched systems button instead of the one-per-line box, with the rest of the row unchanged. A settings save that still carries the old camp_systems field parses it as before; a save without it leaves the stored list alone. The map star is a follow-up and is not in this PR. CampSystems storage, parsing rules, the online gate and the card routing are untouched. Test pins: two existing assertions record the new surface. The widget catalog order pin gains intelwatch in its merged position (after pulse), and the notification settings page pin in TestNotificationSettings now expects the modal opener (data-open-watched-modal) where it expected the camp box the swap removes. Every other assertion in the notification and briefing test files is unchanged, and the camp save, routing and briefing camp tests pass as written.
Adds the Intel watch home widget and the watched systems modal
Some checks failed
github/analysis Analysis gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/test Test gate on GitHub runners
github/race Race gate on GitHub runners
3bf83d4408
Updates two test pins for the watched systems surface
Some checks failed
github/analysis Analysis gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/test Test gate on GitHub runners
github/race Race gate on GitHub runners
9ba4f34fcb
natemsz force-pushed feat/widget-intel-watch from 9ba4f34fcb
Some checks failed
github/analysis Analysis gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/test Test gate on GitHub runners
github/race Race gate on GitHub runners
to 31bc9bedf4
All checks were successful
github/analysis Analysis gate on GitHub runners
github/test Test gate on GitHub runners
github/core-only Core-only gate on GitHub runners
github/race Race gate on GitHub runners
2026-11-02 03:54:23 +00:00
Compare
natemsz merged commit e6002b2478 into feat/notify-card-routing 2026-11-02 05:47:59 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
EveSynapse/evesynapse!84
No description provided.