
thePR0M3TH3ANandClaude Opus 4.8
2a21756842
submissions(#23): admin "Submissions" sub-tab (approve/deny)
The headline: an admin surface to triage the structured submissions.
- profile-modal.html: "Submissions" sub-tab button + #adminSubmissionsSection
(refresh + loading/empty + list), alongside Whitelist/Blacklist/Blocked
videos/Moderators.
- ProfileAdminController: adds "submissions" to the sub-tab machinery (button +
section maps, selectAdminSubtab dispatch, refreshAdminPaneState populate), gates
the tab on FEATURE_SUBMISSIONS, and wires the list/refresh listeners.
- js/ui/profileModal/submissionsSection.js (extracted to keep the controller under
the 1200-line cap, like blockedVideosSection.js): populate/render + approve/deny.
Approve (applications only) → accessControl.addToWhitelist(actor, applicant) +
markSubmissionResolved(approved) + refresh the whitelist; Deny/Dismiss →
markSubmissionResolved(denied). Optimistic remove; re-sync on failure. Cards show
the type badge + claimed applicant + body.
- tailwind.source.css: .submission-card* (token-only).
Gated by FEATURE_SUBMISSIONS (tab hidden when off). Lint + build clean;
profile-modal-controller tests 26/26.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-06 20:40:06 -04:00
..
2026-07-04 14:43:22 -04:00
2026-01-19 12:51:34 -05:00
2026-02-08 00:33:13 +00:00
2026-02-05 20:31:23 +00:00
2025-10-15 14:37:25 -04:00
2026-07-03 21:38:53 -04:00
2026-07-03 21:02:27 -04:00
2026-07-05 09:18:38 -04:00
2026-07-06 15:16:06 -04:00
2026-07-02 23:12:20 -04:00
2026-07-05 00:13:14 -04:00
2026-02-11 03:27:26 +00:00
2026-07-02 14:48:18 -04:00
2026-07-06 20:20:18 -04:00
2026-07-06 20:40:06 -04:00
2026-07-02 09:08:32 -04:00
2026-02-05 17:00:13 +00:00
2026-06-30 15:19:34 -04:00
2026-06-30 15:19:34 -04:00
2026-06-22 18:47:00 -04:00
2026-06-30 17:00:57 -04:00
2026-07-04 09:34:44 -04:00
2025-10-03 21:10:22 -04:00
2026-02-08 03:44:38 +00:00
2026-01-07 17:30:22 +00:00
2026-07-06 14:18:31 -04:00
2026-07-06 13:12:37 -04:00
2026-06-24 08:19:37 -04:00
2026-07-02 10:44:09 -04:00
2026-07-05 00:36:44 -04:00
2026-06-25 09:13:52 -04:00
2026-07-06 20:17:47 -04:00
2026-01-24 20:28:53 +00:00
2026-06-14 09:52:41 -04:00
2026-02-07 21:52:51 +00:00
2026-06-16 15:40:06 -04:00
2026-06-23 21:36:15 -04:00
2026-02-16 21:47:01 +00:00
2026-02-08 03:44:38 +00:00
2026-01-24 22:29:18 +00:00
2026-01-22 19:27:40 -05:00
2026-01-21 17:48:01 +00:00
2026-06-25 09:33:41 -04:00
2026-02-08 00:22:16 +00:00
2026-06-24 13:13:45 -04:00
2026-01-23 04:19:40 +00:00
2026-06-20 18:27:42 -04:00
2026-06-16 15:40:06 -04:00
2026-01-23 02:09:08 -05:00
2026-01-24 20:28:53 +00:00
2026-01-30 17:04:15 -05:00
2026-06-19 08:52:11 -04:00
2026-01-26 21:49:18 -05:00
2026-07-03 21:38:53 -04:00
2026-01-28 23:49:33 +00:00
2026-02-09 21:32:29 +00:00
2026-07-06 20:17:47 -04:00
2026-07-03 21:01:31 -04:00
2026-02-09 02:24:53 +00:00
2025-10-22 22:17:30 -04:00
2025-10-22 22:17:30 -04:00
2026-02-07 21:52:51 +00:00
2025-09-24 15:23:24 -04:00
2026-07-06 15:48:17 -04:00
2026-06-16 16:56:12 -04:00
2026-01-19 20:46:47 +00:00
2026-07-01 15:20:58 -04:00
2026-07-02 23:07:22 -04:00
2026-01-19 02:13:59 +00:00
2025-10-01 13:42:50 -04:00
2026-07-01 15:20:58 -04:00
2026-06-19 16:22:08 -04:00
2026-06-16 09:17:47 -04:00
2026-01-30 16:51:01 -05:00
2026-06-24 13:06:34 -04:00
2026-06-25 09:33:41 -04:00
2026-07-01 15:20:58 -04:00
2026-06-19 11:33:35 -04:00
2026-01-19 20:46:47 +00:00
2026-07-05 00:27:00 -04:00
2026-06-24 17:29:53 -04:00
2026-07-06 13:16:28 -04:00
2026-06-19 11:33:35 -04:00
2026-06-20 18:16:10 -04:00
2026-06-21 10:55:27 -04:00
2025-10-15 12:49:46 -04:00
2026-06-19 22:10:55 -04:00
2026-02-17 07:01:18 +00:00
2025-02-05 16:54:40 -05:00
2026-06-19 16:39:38 -04:00
2026-07-05 00:27:00 -04:00
2026-07-05 00:36:44 -04:00