Repository navigation
feat(backoffice): an operator restores or clears a reported drawing - #443
Open
raphoester wants to merge 4 commits into
Open
raphoester wants to merge 4 commits into
raphoester wants to merge 4 commits into
Conversation
A Drawings page lists the reports of a drawing on the map, open ones first. A report links the drawing on the map, restores its area as it was before the report after a dry run that names who painted it, clears an area older than the ledger, and closes the report. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
raphoester
added this pull request to stack #444
October 20, 2026 16:06
) * feat(backoffice): a report shows every message of the reported player A report from a player's card names no message, so the operator could not read what the player said. ListMessages takes an account id: that account's messages alone, the cursors included. The report detail lists them, newest first, and opens the conversation around each. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(backoffice): an account's player page lists its chat messages The player page counted an account's messages and could not show them. It now lists them as a report does, newest first, each with the conversation around it. Conversation and TheirMessages move to src/chat, which both pages use. Off a report there is no reporter, so the tags are optional, and the player page tags no line. Opening the player already open keeps its row: its own name in its messages opens it again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(backoffice): a reported player's messages show in conversations Each message of the reported player came alone, its conversation behind a click. The panel now reads the chat around each and shows the conversations at once, three at a time. A message one already holds needs none of its own, and two that touch join, so an exchange is one conversation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… claude/backoffice-drawings # Conflicts: # apps/backoffice/CLAUDE.md
…wings # Conflicts: # apps/backoffice/CLAUDE.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The backoffice screens for reports of a drawing on the map, and the tools that undo one. Stacked on #442 (the backend): merge that one first.
What
src/drawings/): the open place reports first (ListPlaceReportswithopen_only), a switch for all. Each shows its reason (hate, sexual, other), the tile, the reporter's name, the text, the time, and its decision once decided.https://clickplanet.lol/?tile=<id>in a new tab. One area for every tool: the tile and its rings, 8 by default (a bomb's blast), 1 to 50.RestoreArea): as it was at a time, an hour before the report by default. The dry run says the tiles in the area, how many changed since, how far back the ledger reaches (then the field'smin), and who painted it, by flag and name (GetAuthors, as the players list), each opening on the player page (OpenPlayer) to ban. Restore stays off until a dry run matches the rings and the time, asks with its count ("Put back the 12 tiles changed since …?"), and needs a new dry run after it.failed_precondition) says: "The ledger does not reach back to then: clear the area instead."ClearArea): dry run (how many tiles a flag holds), then Clear, which asks with its count, on the same rule.DecidePlaceReport): Acted or Dismissed, with a comment.DecideFormnow takes the call that decides, so a player's report and a place's share it.FakeAdminlists and closes place reports, and restores and clears as the server does (a time older than itskeptSinceis refused; a dry run changes nothing).apps/backoffice/CLAUDE.md: a "Drawings" section.Tests
drawings/actions.test.ts: the map link, the default time, each call's request and answer (restore, the painters named once, clear, close), the refusals in words, and the datetime-local round trip.drawings/DrawingsPage.test.tsx(jsdom): open first and all, a decision shown, the map link in a new tab, restore only after a dry run and with its numbers, a new dry run needed once the area changes, the painters named and opened on the player page, the ledger refusal (with Clear still there), clear after its dry run, and closing the report.DecideForm.🤖 Generated with Claude Code