Catalogue Get Entry Screen - cressie176/Load64 GitHub Wiki
Select a catalogue and confirm or enter the catalogue entry ID, then fetch metadata or media for the current game.
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ <Game Title> > Details > From Catalogue │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ FORM │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Catalogue * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ GameBase64 \/ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ ID * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ 243_ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ [Fetch] [Cancel] │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ Import Games > <Title> > Details > From Catalogue │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ FORM │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Catalogue * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ GameBase64 \/ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ ID * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ 243_ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ [Fetch] [Cancel] │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ <Game Title> > Media > Cover Art > From Catalogue │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ FORM │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Catalogue * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ GameBase64 \/ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ ID * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ 243_ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ [Fetch] [Cancel] │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR │
│ <Game Title> > Media > Screenshots > From Catalogue │
├──────────────────────────────────────────────────────────────────────────────┤
│ │
│ FORM │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Catalogue * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ GameBase64 \/ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ ID * │ │
│ │ ┌─────────────────────────┐ │ │
│ │ │ 243_ │ │ │
│ │ └─────────────────────────┘ │ │
│ │ │ │
│ │ [Fetch] [Cancel] │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
└──────────────────────────────────────────────────────────────────────────────┘
While the fetch is in progress the form is non-interactive and the bottom bar shows a progress message.
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ Fetching from <Catalogue Name>… │
└──────────────────────────────────────────────────────────────────────────────┘
Purpose: Show navigation context
The breadcrumb reflects both the flow (Details or Media) and the mode (standard or import):
| Flow | Mode | Title |
|---|---|---|
| Details | Standard | <Game Title> > Details > From Catalogue |
| Details | Import | Import Games > <Title> > Details > From Catalogue |
| Cover Art | Standard | <Game Title> > Media > Cover Art > From Catalogue |
| Cover Art | Import | Import Games > <Title> > Media > Cover Art > From Catalogue |
| Screenshots | Standard | <Game Title> > Media > Screenshots > From Catalogue |
| Screenshots | Import | Import Games > <Title> > Media > Screenshots > From Catalogue |
See Import Candidate screen for the <Title> derivation rule.
Type: Form
Focusable: Yes (primary focus region)
Interactive: Yes
Purpose: Select a catalogue and confirm or enter the ID, then trigger a fetch
A dropdown listing all supported catalogues. Defaults to the first catalogue alphabetically.
A text input for the catalogue entry ID for this game. Pre-populated when an ID is already known — either matched by the LoadC64 Catalogue during import discovery, or previously entered by the user. Empty when no ID is known.
When the Catalogue selection changes, the ID field updates to show the known ID for the newly selected catalogue, or clears if none is known.
If the user edits the ID and [Get] succeeds, the new ID is saved as the catalogue source for this game and catalogue, replacing any previously stored value. If no source record existed, one is created.
Validates the ID, then triggers a fetch from the selected catalogue using the Pattern B async operation (see User Experience). On success, returns to the calling screen with results applied:
- Details flow — returns to the Game Details Edit screen with fetched values loaded into the second column.
- Cover Art flow — returns to the Cover Art screen with fetched images added to the candidates grid. Images are saved using content-hash filenames (see Media filename conventions), so fetching the same image from any catalogue is idempotent — no duplicate file is created.
- Screenshots flow — returns to the Screenshots screen with fetched images added to the candidates grid. The same content-hash deduplication applies.
Focusable: No
Interactive: No
Purpose: Display fetch progress and validation errors
While fetching:
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ Fetching from <Catalogue Name>… │
└──────────────────────────────────────────────────────────────────────────────┘
After a validation error:
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ <Error message> │
└──────────────────────────────────────────────────────────────────────────────┘
After a fetch error:
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR │
│ Could not fetch from <Catalogue Name>. Check the ID and try again. │
└──────────────────────────────────────────────────────────────────────────────┘
| Name | Type | Required | Notes |
|---|---|---|---|
| Catalogue | Dropdown | Yes | Must not be empty. |
| ID | String | Yes | Must not be empty. |