Repository navigation
Open
Description
Summary
As a signed-in contributor, I want to switch a device page into edit mode on the website and propose changes to a small, fixed set of curated fields, so that I can correct or complete device data without leaving the page or knowing Git.
This is the website channel of the first contribution iteration described in #74. It covers only the in-page editing experience; account handling, pull request creation and moderation are separate features (see dependencies).
Reduced field set (first iteration)
| Field | Input type | Notes |
|---|---|---|
| Image | File upload | Image rights and license acknowledgement required at submit (depends on legal track, #35) |
| Name | Text | Display name (concatenation of model + model identifier when present and not equal) |
| Category | Select from existing categories | Proposing new categories is out of scope here |
| Brand | Select from existing brands | |
| Local connection | multi-select over "fully local", "setup requires cloud", "requires cloud" |
Fields are added over time by follow-up features, not by widening this one.
Flow
- Enter edit mode. A signed-in contributor presses "Edit" on a device page. Editable fields turn into inputs; everything else stays as is. Signed-out visitors see "Edit" and are routed to sign-in first (Account 0.1), returning to edit mode afterwards.
- Pending edits visible. If an open pull request already proposes a value for a field, that proposed value is shown next to the field (with a link to the PR) so contributors don't duplicate work.
- Edit. The contributor changes one or more fields. Unchanged fields are not part of the proposal.
- Propose. Pressing "Propose" opens a summary modal listing each changed field with current value, new value, and a plain-text source input per field (optional for now, encouraged in the UI).
- Submit. Pressing "Submit" hands the change set to the PR creation feature, which creates one pull request per changed field with the contributor's GitHub account.
- Return. The contributor lands back on the device page with their proposals shown as pending in the sidebar, each linking to its PR.
- Cancel. Leaving edit mode without submitting discards changes; a confirmation is shown if there are unsaved edits.
Acceptance criteria
- "Edit" is visible on every device page; it requires a signed-in contributor (Account 0.1) before fields become editable
- Only the four fields above become editable; reported fields are never editable
- Existing pending proposals for a field are displayed in edit mode with a link to the PR
- The summary modal lists only changed fields and allows a source per field
- Submitting a change set results in exactly one pull request per changed field, attributed to the contributor
- After submit, the device page shows the new proposals as pending without a page reload loop or stale state
- Edit mode works on mobile and desktop and follows the current visual design; it is built so the new visual design (Define and roll out a new visual design for the Device Database #175) can restyle it without changing behaviour
- Image uploads enforce size and type limits and require licence acknowledgement
- A contributor can cancel at any point without side effects
Not in scope
- Account creation, sign-in and deletion (Account 0.1 feature)
- Pull request creation, data repository structure and bot moderation (separate features under Add way to contribute by modifying data on an existing device #74)
- Direct PR channel against the repository (documented in contributor guidelines)
- Bulk edits, editing several devices at once
- Proposing new categories or traits; editing any field beyond the five above
- Review UI, voting, notifications, contributor profiles (increments from Stage 3: Accounts and editing #152)
- Editing hints from external databases (Further enrichment from public databases #27)
Dependencies
- Account 0.1: GitHub-based sign-in and registration
- Data repository structure (one file per trait) and the PR creation service
- Moderation rules for the five fields, so pending proposals have a defined lifecycle
- Legal: image licence acknowledgement text and terms of use (Launch readiness for the public Device Database (public information, communication, Preview/Labs exit) #35)
- Design: edit mode, summary modal and pending-edits sidebar from the Stage 3 prototype (Stage 3: Accounts and editing #152); alignment with the visual design track (Define and roll out a new visual design for the Device Database #175)
Open questions
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status
Activity