Repository navigation
fix(qcm): camera list focus, announcements and search recovery (QQA-16c) - #44
Merged
Merged
Conversation
Ported from headlessmode-archive #790 (commit 3e807b4f) onto master; conflicts in main.js and layer-registry.test.mjs resolved against master's groupHint and screen/names render maps.
… (QQA-18) The Layers panel was headed by provider and rendering role. It now has ten task headings (Map style, Places & routes, Land & access, Terrain & landscape, Weather & conditions, Night sky, Cameras, Place facts, Explore counties, Print options); every layer id has exactly one home. Search also matches group purpose words and opens matching groups, restoring them when cleared. An Active on map list shows each layer that is on with Remove and Retry. Print-only pages are not counted as on the map. Presentation only: ids, input ids, radio/checkbox roles, URL state and what each layer draws are unchanged. Ported from headlessmode-archive #794 (commit 7f665250). Adapted to the shipped catalogue: the eleven layers added since get a task home, and the browser tests account for the default-on names and roads layers in the Active list.
…16a) Under the Cameras group, a list built from loaded camera records, not pins: "In this view" (from zoom 7) or "Near selected place" (25 km, any zoom), with purpose filters over the five camera layer ids. - camera-layer.js: cameraList, cameraListStatus, cameraRowText, listLoadState, listPlace, PURPOSE_OF_LAYER, kmBetween, reachBox. - main.js: builds and redraws the list (150 ms debounce, rows rebuilt only on change); the near scope loads the camera files around the place on demand. The latest place pick wins: finder, pin or places list, else the drawn area's centre. - Counts are honest: "Listing the nearest 50 of 350" and the 300-pin cap is stated, never silent. Loading, zoom-in, nothing near, unavailable and partly-unavailable states are distinct, and a near-scope failure is judged on the near files alone. - The Active on map list counts only layer rows, not the list controls. - Tests: camera-list (11) and camera-list-browser J10, J10b-e (6). Ported from headlessmode-archive #798 (commit 212364d9), stacked on the QQA-18 grouping PR.
…-16b) The camera list gains a Saved scope keyed by camera:provider:providerId through the saved-places store, with legacy alias refs treated as one camera. Search this area reads only the index files within a true 100 km of the map centre, on a press, latest search wins. Below the pin zoom the list summarises loaded cameras instead of going blank. A throwing storage accessor no longer crashes the page; saving shows as unavailable. Ported from headlessmode-archive #800 (commit b8615f1f), stacked on the QQA-16a camera list PR.
Follow-ups from the QQA-16a and QQA-16b reviews. A repaint returns focus to the same camera row (or the list, never the page); a separate polite announcer speaks only settled answers that changed, and stays quiet while a search is pending; rows are exposed as a list. A failed search shows a failed state instead of hanging on Searching, and the Saved scope retries a failed index or camera file on the next press or a saved-count change. A shared leak check proves save and search send no camera ref, old ref, id tail or name anywhere, with a negative control. Ported from headlessmode-archive #801 (commit 8d41d5b0), stacked on the QQA-16b saved cameras PR.
Deploying headlessmode-current with
|
| Latest commit: |
3576885
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5a22a033.headlessmode-current.pages.dev |
| Branch Preview URL: | https://qqa-16c-camera-polish.headlessmode-current.pages.dev |
# Conflicts: # content/quiet-corners-maps.md # scripts/qcm/README.md # scripts/qcm/context-overlays-browser.test.mjs # scripts/qcm/layer-count-browser.test.mjs # themes/headlessmode/static/js/quiet-corners-maps/main.js
# Conflicts: # scripts/qcm/site-coupling.json # themes/headlessmode/static/js/quiet-corners-maps/main.js
# Conflicts: # scripts/qcm/README.md # themes/headlessmode/static/js/quiet-corners-maps/main.js
# Conflicts: # themes/headlessmode/static/js/quiet-corners-maps/main.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ported from headlessmode-archive #801 (commit 8d41d5b0), QC U13 camera chain (QC-04), plan row U13. Base
qqa-16b-camera-find(PR for #800), stacked. Closed in the archive, not merged there; this is the port.What changes: focus handling, announcements and search recovery in the Cameras list, plus a leak-check helper for its tests.
Adapted: one md conflict with master's wording resolved (master's "Search places" kept);
site-coupling.jsonregenerated.Tests (through
bin/pytest-slot.sh, logs unpiped):