Rework rule-book UI for one-rule-book-per-user model #7

Closed
opened 2026-07-02 09:53:55 +02:00 by Sirttas · 0 comments
Owner

Frontend follow-up to mammon [domain-ownership] 3 — One rule book per user (eveal/mammon#14).

Why

mammon#14 restructures the rule slice: rule_book becomes a per-user singleton (one owned rule book per user; the seeded default stays global as a fallback), and the per-character selection is retiredcharacter_rule_book + ledger_binding collapse into a user-scoped rule book + bindings, and resolution moves from character to user. Endpoints are reworked accordingly (GET /rule-books, GET /rule-books/{id}, create/update/delete; and /characters/{characterId}/rule-book).

The current gemory rule-book UI is built on the old per-character model and will break / become obsolete.

Scope

  • Retire the per-character rule-book UI:
    • ListCharacterRuleBooks.vue, EditCharacterRuleBook.vue (route /characters/:characterId/rules, editCharacterRulebook)
    • CharacterRuleBookApi wiring in src/mammon/mammonService.ts
    • useCharacterRuleBooksStore
  • Rework the rule-book pages to a single user-owned rule book:
    • ListRuleBooks.vue / EditRuleBook.vue and routes.ts (listRuleBooks, newRuleBook, editRuleBook) — a user now has exactly one rule book (default global as fallback), so list/new/edit navigation should be reconsidered (likely a single "my rule book" edit view).
    • useRuleBooksStore — resolve by user; drop the FIXME don't call refresh path in EditRuleBook.vue.
  • Update bindings UI so ledger bindings reference only the user's (or system) ledgers.
  • Regenerate the API client from the updated OpenAPI spec once mammon#14 lands (src/generated/, docs/mammon-api.yml).

Depends on

  • eveal/mammon#14 (backend must land first; API client regeneration follows)

Acceptance criteria

  • Per-character rule-book pages, routes, store, and CharacterRuleBookApi removed.
  • Rule-book UI reflects one owned rule book per user (default global as fallback).
  • Bindings only offer the user's / system ledgers.
  • Non-owned rule book access is handled (403/404) gracefully in the UI.
Frontend follow-up to mammon **[domain-ownership] 3 — One rule book per user** (eveal/mammon#14). ## Why mammon#14 restructures the rule slice: `rule_book` becomes a **per-user singleton** (one owned rule book per user; the seeded default stays global as a fallback), and the **per-character selection is retired** — `character_rule_book` + `ledger_binding` collapse into a user-scoped rule book + bindings, and resolution moves from *character* to *user*. Endpoints are reworked accordingly (`GET /rule-books`, `GET /rule-books/{id}`, create/update/delete; and `/characters/{characterId}/rule-book`). The current gemory rule-book UI is built on the old per-character model and will break / become obsolete. ## Scope - **Retire the per-character rule-book UI:** - `ListCharacterRuleBooks.vue`, `EditCharacterRuleBook.vue` (route `/characters/:characterId/rules`, `editCharacterRulebook`) - `CharacterRuleBookApi` wiring in `src/mammon/mammonService.ts` - `useCharacterRuleBooksStore` - **Rework the rule-book pages to a single user-owned rule book:** - `ListRuleBooks.vue` / `EditRuleBook.vue` and `routes.ts` (`listRuleBooks`, `newRuleBook`, `editRuleBook`) — a user now has exactly one rule book (default global as fallback), so list/new/edit navigation should be reconsidered (likely a single "my rule book" edit view). - `useRuleBooksStore` — resolve by user; drop the `FIXME don't call refresh` path in `EditRuleBook.vue`. - Update bindings UI so ledger bindings reference only the user's (or system) ledgers. - Regenerate the API client from the updated OpenAPI spec once mammon#14 lands (`src/generated/`, `docs/mammon-api.yml`). ## Depends on - eveal/mammon#14 (backend must land first; API client regeneration follows) ## Acceptance criteria - [x] Per-character rule-book pages, routes, store, and `CharacterRuleBookApi` removed. - [x] Rule-book UI reflects one owned rule book per user (default global as fallback). - [x] Bindings only offer the user's / system ledgers. - [x] Non-owned rule book access is handled (403/404) gracefully in the UI.
Sirttas added a new dependency 2026-07-02 09:54:24 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Depends on
You do not have permission to read 1 dependency
Reference: eveal/gemory#7