feat: add copyright report UI (public report page, admin flag button, sysadmin review)

- /report: public three-step page to find a broadcaster, pick an asset, and
  submit a DMCA-style claim; uses asset.url fallback for images without previews
- Admin console: flag button opens report modal for the selected asset
- Settings page: sysadmin copyright reports section with status/broadcaster
  filters, paginated table, and review modal with action radio buttons
- Footer on index.html links to /report
This commit is contained in:
2026-04-28 14:47:05 +02:00
parent 05a7c5d2b5
commit 87367a6e35
10 changed files with 879 additions and 10 deletions
@@ -77,6 +77,7 @@ export function createAdminConsole({
const selectedEditBtn = document.getElementById("selected-asset-edit");
const selectedVisibilityBtn = document.getElementById("selected-asset-visibility");
const selectedDeleteBtn = document.getElementById("selected-asset-delete");
const selectedReportBtn = document.getElementById("selected-asset-report");
const assetActionRow = document.getElementById("asset-actions");
const assetActionButtons = Array.from(assetActionRow?.querySelectorAll("button") ?? []);
const canvasResolutionLabel = document.getElementById("canvas-resolution");
@@ -2185,6 +2186,9 @@ export function createAdminConsole({
selectedDeleteBtn.disabled = !asset;
selectedDeleteBtn.title = asset ? "Delete asset" : "Delete asset";
}
if (selectedReportBtn) {
selectedReportBtn.disabled = !asset;
}
}
function ensureDurationMetadata(asset) {