Skip to content

fix(admin): add tags/genre support and category picker dropdown to door config form - #528

Merged
awehttam merged 2 commits into
awehttam:claudesbbsfrom
thewebexpert:fix/door-config-tags-and-picker
Oct 23, 2026
Merged

awehttam merged 2 commits into
awehttam:claudesbbsfrom
thewebexpert:fix/door-config-tags-and-picker

Conversation

@thewebexpert

Copy link
Copy Markdown
Contributor

Summary

This PR adds full tags and genre support to the door configuration forms, JS-DOS doors, and manifest editors:

  1. Category Picker Dropdown in DoorConfigForm:

    • Upgrades field.type === 'tags' in door-config-form.js to render an input group combining the comma-separated text input (with datalist autocomplete) and an "Add category..." dropdown selector populated from #manifestCategoriesList / standard categories.
    • Selecting a tag appends it to the input without duplication.
    • Adds fallback to manifest default tags (info.genre) if no runtime override is set in config/{type}doors.json so existing door tags are visible when editing.
  2. JS-DOS & Web Door Manifest Definitions:

    • Adds genre (type tags) to JsdosDoorManifestDefinition under game_info.
    • Adds game.genre (type tags) to WebDoorManifestDefinition.
    • Adds genre to DoorRuntimeFields::getAllowedKeys('jsdos') with array parsing in merge().
  3. Runtime Overrides & AI Auto-fill:

    • In routes/webdoor-routes.php, respects runtime gameConfig['genre'] overrides for JS-DOS doors if specified.
    • In routes/admin-routes.php, supplies standard_categories to /admin/jsdosdoors.
    • In door manifest AI auto-fill, maps to both prefixed and top-level fields (genre and game.genre).
  4. Cache Busting:

    • Adds ?v=1.3.0 to /js/door-config-form.js script tags across door config templates to ensure browsers load the updated component.

@awehttam
awehttam merged commit 274cbb5 into awehttam:claudesbbs Oct 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants