Skip to content

Expose RSVP (rsvp_changes) filter in raid/egg UI #233

Description

@hokiepokedad2

Summary

Backend already carries rsvp_changes on raid/egg DTOs, entities, and mappings — it round-trips through IPoracleTrackingProxy correctly. The frontend never exposes it: add/edit dialogs hardcode rsvpChanges: 0, and card lists show no pill. This issue tracks wiring it through to end users, matching how both legacy PoracleWeb PHP and the PoracleJS/NG bot commands present it.

Background

rsvp_changes is an int filter on raid/egg tracking rules that controls RSVP follow-up notifications:

  • 0 — match alerts only (default)
  • 1 — match alerts + RSVP updates
  • 2 — RSVP updates only

No dedicated PoracleNG endpoint — it's just a field on existing /api/tracking/raid|egg calls (snake_case passthrough already works). Per-profile via the existing (id, profile_no, uid) key.

Prior art:

  • Legacy bbdoc/PoracleWebselectpicker dropdown on raid + egg add/edit; badge-info pill "Raids + RSVP" / "RSVP Only" on cards.
  • PoracleJS bot: !raid mewtwo rsvp only, !egg 5 no rsvp — tokens no rsvp / rsvp / rsvp only.
  • Shared i18n keys across both: including rsvp updates, rsvp only, without rsvp updates.

Gotcha: RSVP alerts only fire if the upstream scanner/coordinator emits RSVP webhooks into PoracleNG. Mode 2 silences the alarm entirely in deployments without one — worth a hint in the UI copy.

Scope

Frontend-only. No backend, proxy, controller, or DB changes.

Tasks

  • Raid add dialog (modules/raids/raid-add-dialog.component.{ts,html}) — add mat-select RSVP control (3 options), bind to form, replace hardcoded rsvpChanges: 0 in all three submit paths (lines ~129, 143, 164).
  • Raid edit dialog (modules/raids/raid-edit-dialog.component.{ts,html}) — same control, pre-populated from existing rsvpChanges (lines ~130, 153). Shared with egg edit — verify parity.
  • Egg add dialog — confirm parity with raid (legacy PHP had parity).
  • Raid + egg card list (modules/raids/raid-list.component.{ts,html}) — add filter pill matching the existing IV/CP/Level/PVP pill pattern. Hidden when 0; "RSVP" when 1; "RSVP only" when 2.
  • i18n — add three translation keys across all ClientApp/src/assets/i18n/*.json locale files.

Recommended labels

Field label: RSVP notifications

  • 0 — Matches only (default)
  • 1 — Matches + RSVP updates
  • 2 — RSVP updates only

Hint: "Controls notifications when other trainers RSVP. 'Matches + RSVP' is recommended if you coordinate with a raid group. Requires your scanner to emit RSVP webhooks."

Pill text: RSVP (mode 1), RSVP only (mode 2).

Test plan

  • Add new raid/egg with each of the three RSVP modes; verify value persists via GET /api/tracking/raid|egg.
  • Edit existing raid/egg to change mode; verify update persists.
  • Verify pills render correctly on cards for modes 1/2 and hide for 0.
  • Verify label renders in at least one non-English locale.
  • Jest tests for dialog form control + card pill rendering.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions