From f2814a515f435183bba06214eaaa90f4f206f787 Mon Sep 17 00:00:00 2001 From: Viktor Petersson Date: Thu, 11 Jun 2026 09:59:52 +0000 Subject: [PATCH 1/3] fix(server): polish home bulk-action & upload UI/UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up UI/UX pass over the recently shipped bulk asset management (#3048), multi-file upload (#3049), and ffmpeg/HandBrake rejection hints (#3040). - Reserve bottom space (.has-bulk-selection) while a selection is active so the fixed bulk-action bar never floats over the last rows or their action buttons — exactly the assets a bulk selection targets. - Cap .modal-card to the viewport and scroll inside it, with sticky header/footer, so a tall bulk-edit form (or the Edit modal with the failure alert + Advanced open) keeps its title and Apply/Save buttons reachable instead of pushing them below the fold. - Wire real drag-and-drop on the upload dropzone (dropFiles() feeds the same sequential uploadFiles() batch path); the dashed zone already read as a drop target but silently ignored drops. - Lift the selection checkbox contrast on the dark Enabled surface so the select-all (checked/indeterminate) and per-row boxes are legible against the purple gradient; scoped to .asset-select so the activity switch keeps its track styling. - Anchor the bulk bar's clear (x) to the top-right on phones so it no longer wraps beside the destructive Delete (mis-tap risk). - Stack the ffmpeg recipe's copy button under the command at narrow widths; make the empty-state CTA a diff --git a/src/anthias_server/app/templates/home.html b/src/anthias_server/app/templates/home.html index da2743247..1ac38fea6 100644 --- a/src/anthias_server/app/templates/home.html +++ b/src/anthias_server/app/templates/home.html @@ -8,7 +8,7 @@ {% endblock %} {% block main %} -
+

Schedule Overview

From f4a738bc27e1672f9cf56fdbc8014f1a42bd28c3 Mon Sep 17 00:00:00 2001 From: Viktor Petersson Date: Thu, 11 Jun 2026 10:06:59 +0000 Subject: [PATCH 2/3] fix(server): stop dropzone highlight flicker on child drag-over Copilot review on #3066: dragleave bubbles from the dropzone's child icon/paragraphs, toggling dragActive off while the cursor is still over the label and flickering the highlight. Add the .self modifier so the handler only runs when leaving the label itself. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/anthias_server/app/templates/_asset_modal.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/anthias_server/app/templates/_asset_modal.html b/src/anthias_server/app/templates/_asset_modal.html index a5a456f7e..f9a155680 100644 --- a/src/anthias_server/app/templates/_asset_modal.html +++ b/src/anthias_server/app/templates/_asset_modal.html @@ -95,7 +95,7 @@

x-show="!uploadState" @dragover.prevent @dragenter.prevent="dragActive = true" - @dragleave.prevent="dragActive = false" + @dragleave.self.prevent="dragActive = false" @drop.prevent="dragActive = false; dropFiles($event)" > From 554d647274a158e743b5d458725501ccc87177fd Mon Sep 17 00:00:00 2001 From: Viktor Petersson Date: Thu, 11 Jun 2026 10:12:37 +0000 Subject: [PATCH 3/3] fix(server): clear dropzone drag highlight when the modal closes Second Copilot pass on #3066: dragActive could stay true if the user drags into the dropzone then closes the Add modal (Esc/backdrop/Cancel) before dragleave fires, so the dropzone re-opened still highlighted. Reset dragActive in closeModal() alongside the other modal state. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/anthias_server/app/static/src/home.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/anthias_server/app/static/src/home.ts b/src/anthias_server/app/static/src/home.ts index 6223fe091..e6a8950b4 100644 --- a/src/anthias_server/app/static/src/home.ts +++ b/src/anthias_server/app/static/src/home.ts @@ -242,6 +242,11 @@ function homeApp(): HomeAppData { // anyway. this.mode = null this.editAsset = null + // Clear any leftover drag highlight: dragging into the dropzone and + // then closing the modal (Esc/backdrop/Cancel) before dragleave + // fires would otherwise leave dragActive true, so the dropzone + // re-opens still highlighted. + this.dragActive = false if (!this.uploadState) { this.uploadProgress = 0 this.uploadFileName = ''