Catalogue Get Entry Screen - cressie176/Load64 GitHub Wiki

Primary Purpose

Select a catalogue and confirm or enter the catalogue entry ID, then fetch metadata or media for the current game.

Main Screen Design

Details flow — standard mode

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  <Game Title> > Details > From Catalogue                                     │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  FORM                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │                                                                        │  │
│  │  Catalogue *                                                           │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ GameBase64           \/ │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  ID *                                                                  │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ 243_                    │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  [Fetch]  [Cancel]                                                     │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

Details flow — import mode

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  Import Games > <Title> > Details > From Catalogue                           │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  FORM                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │                                                                        │  │
│  │  Catalogue *                                                           │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ GameBase64           \/ │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  ID *                                                                  │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ 243_                    │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  [Fetch]  [Cancel]                                                     │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

Cover Art flow — standard mode

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  <Game Title> > Media > Cover Art > From Catalogue                           │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  FORM                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │                                                                        │  │
│  │  Catalogue *                                                           │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ GameBase64           \/ │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  ID *                                                                  │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ 243_                    │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  [Fetch]  [Cancel]                                                     │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

Screenshots flow — standard mode

┌──────────────────────────────────────────────────────────────────────────────┐
│ TOP BAR                                                                      │
│  <Game Title> > Media > Screenshots > From Catalogue                         │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  FORM                                                                        │
│  ┌────────────────────────────────────────────────────────────────────────┐  │
│  │                                                                        │  │
│  │  Catalogue *                                                           │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ GameBase64           \/ │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  ID *                                                                  │  │
│  │  ┌─────────────────────────┐                                           │  │
│  │  │ 243_                    │                                           │  │
│  │  └─────────────────────────┘                                           │  │
│  │                                                                        │  │
│  │  [Fetch]  [Cancel]                                                     │  │
│  └────────────────────────────────────────────────────────────────────────┘  │
│                                                                              │
├──────────────────────────────────────────────────────────────────────────────┤
│ BOTTOM BAR                                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

Fetching state

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>…                                             │
└──────────────────────────────────────────────────────────────────────────────┘

TOP BAR

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.

FORM

Type: Form
Focusable: Yes (primary focus region)
Interactive: Yes
Purpose: Select a catalogue and confirm or enter the ID, then trigger a fetch

Catalogue field

A dropdown listing all supported catalogues. Defaults to the first catalogue alphabetically.

ID field

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.

[Fetch]

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.

BOTTOM BAR

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.          │
└──────────────────────────────────────────────────────────────────────────────┘

Validation Rules

Name Type Required Notes
Catalogue Dropdown Yes Must not be empty.
ID String Yes Must not be empty.
⚠️ **GitHub.com Fallback** ⚠️