List the captures that need review in the popup, as the badge counts them #7
Labels
No labels
bug
documentation
enhancement
performance
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Postulo/postulo-chromium#7
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The popup never lists captures. At its bottom is one link, “Captures in this browser”, with a pill counting the captures here that have not reached Postulo (
src/popup.html,showCount()insrc/popup.js). It openscaptures.htmlin a new tab, which lists every capture kept in this browser with its state and actions. Nothing in the extension shows what waits in Postulo: a sent capture stays “Sent”, reviewed or not. The request: a “list of the captures that need review” in the popup.Which rows
The set the badge counts (#5), so the number and the list agree: the captures waiting in Postulo, from the copy of
GET /api/v1/capturesthat issue keeps instorage.local, and, if that issue counts them, the captures here not yet sent (kept, waiting, refused). The popup draws from that copy at once, offline too, and redraws when the read made on opening lands.Proposed: one row per posting, by the badge's address rule, standing for the newest capture in Postulo if there is one, else the newest here, and saying how many there are and where. Postulo's review screen names the other captures waiting at that address, each with “Open it” (
src/postulo/templates/jobs/capture_review.htmlin the core), so opening one reaches the rest (it matches on the address the page states, if any, rather than the one captured from).What the popup should show
created_at(when Postulo received it) and the localcapturedAt: five rows, or as many as fit, then a link to all of them. Popups are at most 800×600 by the browsers' documentation; this one is 320 px wide, 440 when widened (src/style.css).untitled); company and place; when, formatted with the catalogue'slanguageTagascaptures.jsdoes; and where it waits: “Waiting for review in Postulo”, or the list page's “Not sent”, “Waiting for Postulo” or “Refused” (stateKept,stateWaiting,stateRefused). Never by colour alone, the rule ofsrc/style.css.review_urlfor a capture in Postulo, the extension's own review surface for one still here.States
CaptureReviewView,src/postulo/jobs/capture_views.py; not tried in a browser).Decisions for this repository
captures.html, grown to show Postulo's waiting captures beside the ones kept here, from the same copy. Alternative: Postulo's/listings/, which lists up to 20 waiting captures (src/postulo/jobs/listing_views.py) but needs the browser signed in and shows nothing kept here. Settled with #8.captures.html, and the pill goes, since the rows say what is not sent. Alternative: keep both.Needs from the server
Not filed on postulo/postulo. The rows need nothing new. A review page refusing a capture already decided would make a stale row harmless; until then the “last listed” line is the warning.
Words and documents
test/i18n.test.mjsrequires every new key in all 40_localesat once, with identical placeholders, so each costs 40 translations in the same commit.messages.jsonhas no plural forms, so a sentence with a number must read right for any count.src/popup.*.Done when
src/lib/builds the rows, withnode --testcases for merging, order and the limit, since nothing testspopup.js.From the list of extension improvements of 2026-09-30.
Landed in part (
595ddba,Refs #7): the popup lists the postings waiting for review, one row per address, from the same merge the badge uses. Left: Captures in this browser does not show Postulo's waiting captures beside the local ones, and a row for a capture kept here opens the captures page rather than that capture. Not tried in a real browser.review_url,listing_url) are opened in the review window without an instance-origin check #36