From 1144bde881547580abd9b69b047644873c4c6e92 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Tue, 30 Jun 2026 11:39:57 -0400 Subject: [PATCH] [ui] #8: one-click "Delete all" for orphaned storage objects in My Videos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The My Videos tab already lists bucket objects no live note references and offers per-file delete; this adds the bulk action. A "Delete all (N)" button (shown only when there's more than one orphan) confirms once, then removes every listed key in a single deleteStorageKeys({ keys, pubkey }) call — which is already array-capable, unlock-gated, and scoped to the user's prefix. Refreshes the list on success, reports partial results honestly ("Removed 2 files (1 could not be deleted)"), and surfaces storage-locked as an unlock prompt instead of a false success. Tests: tests/my-videos-bulk-orphan-delete.test.mjs (5 — all keys sent in one call, cancel deletes nothing, storage-locked prompt, partial-count message, empty no-op). Build + lint clean; My Videos suite 37/37. Co-Authored-By: Claude Opus 4.8 --- components/profile-modal.html | 15 ++- js/ui/profileModal/MyVideosController.js | 66 +++++++++++++ tests/my-videos-bulk-orphan-delete.test.mjs | 102 ++++++++++++++++++++ todo/TODO_2026-06-20_pre-launch.md | 12 ++- 4 files changed, 190 insertions(+), 5 deletions(-) create mode 100644 tests/my-videos-bulk-orphan-delete.test.mjs diff --git a/components/profile-modal.html b/components/profile-modal.html index fd9bb6e3..f6a268a9 100644 --- a/components/profile-modal.html +++ b/components/profile-modal.html @@ -1061,9 +1061,18 @@ data-orientation="vertical" >