mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 17:43:23 -08:00
[Report] Add context menu to report queue rows (#7444)
* [Report] Add report reopen action for closed reports - New Command_ReportReopen moderator command (extension 1206) with server handler that reopens resolved/dismissed reports, resets resolution state and notified, and records the reopening note in the audit log - Reopen... button in the report queue action bar, gated to resolved and dismissed reports, with optional note prompt and tooltip - Success confirmations for Assign, Resolve/Dismiss and Reopen now survive the list refresh via a pending status message instead of being clobbered - Dispatch/auth coverage in server_moderator_role_test * [Report] Surface resolution audit info in report details - Add resolved_by_name to ServerInfo_Report and join resolved_by users in the report list, my-list and details queries - Render resolution note and resolved-at/by in the report detail pane instead of duplicating the description into the chat log context * [Report] Add context menu to report queue rows - Open the standard UserContextMenu on right-click/Menu key for the reported user, selecting the row first so the details panel matches the menu target - Carry the reported user's level in ServerInfo_Report so the menu shows the same actions as the user list, with an IsUser fallback for deleted or unregistered users - Wire the Private chat action through TabReport to TabSupervisor and retranslate the menu on live language switches * [Server] Fix reported_user_level column indices in report queries The SELECT lists resolved_by_name at index 10, shifting room_id to 11, replay_id to 12, reported_user_id to 13 and reported_user_admin to 14. The code read 12/13, so 'user exists' meant 'a replay exists' and the admin flags came from the user id (e.g. id 5 -> admin+judge; users without a replay reported as unregistered, hiding registered-only actions). Fixed in cmdReportList and cmdReportMyList, plus the column comment. --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
74a6acde91
commit
38acddeede
5 changed files with 80 additions and 5 deletions
|
|
@ -4,6 +4,7 @@
|
|||
#include "tab.h"
|
||||
|
||||
#include <QList>
|
||||
#include <QPoint>
|
||||
#include <QString>
|
||||
#include <libcockatrice/protocol/pb/serverinfo_report.pb.h>
|
||||
#include <qtmetamacros.h>
|
||||
|
|
@ -22,6 +23,7 @@ class QTimer;
|
|||
class GameReplay;
|
||||
class Response;
|
||||
class TabSupervisor;
|
||||
class UserContextMenu;
|
||||
|
||||
class TabReport : public Tab
|
||||
{
|
||||
|
|
@ -37,6 +39,7 @@ public:
|
|||
signals:
|
||||
void openReplay(GameReplay *replay);
|
||||
void requestJoinGame(int gameId, int roomId);
|
||||
void openMessageDialog(const QString &userName, bool focus);
|
||||
|
||||
private slots:
|
||||
void refreshList();
|
||||
|
|
@ -46,6 +49,7 @@ private slots:
|
|||
void resolveReport(bool dismissed, bool promptNote);
|
||||
void resolveResponse(const Response &response);
|
||||
void onSelectionChanged();
|
||||
void showTableContextMenu(const QPoint &pos);
|
||||
void viewReplay();
|
||||
void viewReplayResponse(const Response &response);
|
||||
void joinGame();
|
||||
|
|
@ -94,6 +98,7 @@ private:
|
|||
QPushButton *joinGameButton;
|
||||
QLabel *statusLabel;
|
||||
QTimer *refreshTimer;
|
||||
UserContextMenu *userContextMenu;
|
||||
|
||||
QGroupBox *userContextGroup;
|
||||
QLabel *userContextName;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue