Fix folder labels and drag target highlighting

This commit is contained in:
Mikei386
2026-07-14 18:14:53 +02:00
parent 82190887ee
commit 8ae0b96ce0
5 changed files with 8 additions and 35 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
set -eu set -eu
PLUGIN="u-navigator" PLUGIN="u-navigator"
VERSION="2026.07.14.r011" VERSION="2026.07.14.r012"
PKG_DIR="packages" PKG_DIR="packages"
WORK_DIR=".plugin-build" WORK_DIR=".plugin-build"
PKG_NAME="${PLUGIN}-${VERSION}.tgz" PKG_NAME="${PLUGIN}-${VERSION}.tgz"
Binary file not shown.
-16
View File
@@ -2270,7 +2270,6 @@ function updateItemPointerDrag(event) {
event.preventDefault(); event.preventDefault();
document.body.classList.add('u-nav-dragging'); document.body.classList.add('u-nav-dragging');
markDraggingRows(drag.paths, true); markDraggingRows(drag.paths, true);
markDropCandidates(drag.paths, true);
updatePointerDropTarget(event); updatePointerDropTarget(event);
} }
@@ -2284,7 +2283,6 @@ async function finishItemPointerDrag(event, move, up) {
if (!drag) return; if (!drag) return;
markDraggingRows(drag.paths, false); markDraggingRows(drag.paths, false);
markDropCandidates(drag.paths, false);
state.pointerDrag = null; state.pointerDrag = null;
if (!drag.active) { if (!drag.active) {
@@ -2450,20 +2448,6 @@ function markDraggingRows(paths, dragging) {
} }
} }
function markDropCandidates(sourcePaths, active) {
const source = state.pointerDrag;
for (const row of workspace.querySelectorAll('.file-row[data-type="directory"]')) {
const path = row.dataset.path || '';
const valid = !sourcePaths.includes(path) && isValidPointerTargetPath(path, source);
row.classList.toggle('drop-candidate', active && valid);
}
for (const row of workspace.querySelectorAll('.tree-label[data-tree-open]')) {
const path = row.dataset.treeOpen || '';
const valid = !sourcePaths.includes(path) && isValidPointerTargetPath(path, source);
row.classList.toggle('drop-candidate', active && valid);
}
}
function isValidPointerTargetPath(path, drag = state.pointerDrag) { function isValidPointerTargetPath(path, drag = state.pointerDrag) {
if (!drag) return false; if (!drag) return false;
return (drag.items || []).every((item) => { return (drag.items || []).every((item) => {
+5 -16
View File
@@ -412,10 +412,6 @@
border-color: transparent; border-color: transparent;
} }
.u-nav .tree-label.drop-candidate {
color: var(--accent);
}
.u-nav .tree-label.drop-target { .u-nav .tree-label.drop-target {
background: var(--accent-soft); background: var(--accent-soft);
box-shadow: inset 0 0 0 1px var(--accent); box-shadow: inset 0 0 0 1px var(--accent);
@@ -542,7 +538,6 @@
.u-nav .file-row:hover, .u-nav .file-row:hover,
.u-nav .file-row.selected, .u-nav .file-row.selected,
.u-nav .file-row.dragging, .u-nav .file-row.dragging,
.u-nav .file-row.drop-candidate,
.u-nav .file-row.drop-target { .u-nav .file-row.drop-target {
background: var(--accent-soft); background: var(--accent-soft);
} }
@@ -550,15 +545,10 @@
.u-nav .file-row:hover td, .u-nav .file-row:hover td,
.u-nav .file-row.selected td, .u-nav .file-row.selected td,
.u-nav .file-row.dragging td, .u-nav .file-row.dragging td,
.u-nav .file-row.drop-candidate td,
.u-nav .file-row.drop-target td { .u-nav .file-row.drop-target td {
background: var(--accent-soft) !important; background: var(--accent-soft) !important;
} }
.u-nav .file-row.drop-candidate td:first-child {
box-shadow: inset 3px 0 0 color-mix(in srgb, var(--accent) 72%, transparent);
}
.u-nav .file-row { .u-nav .file-row {
-webkit-user-drag: none; -webkit-user-drag: none;
user-select: none; user-select: none;
@@ -638,22 +628,16 @@
.u-nav .icon-item:hover, .u-nav .icon-item:hover,
.u-nav .icon-item.selected, .u-nav .icon-item.selected,
.u-nav .icon-item.dragging, .u-nav .icon-item.dragging,
.u-nav .icon-item.drop-candidate,
.u-nav .icon-item.drop-target { .u-nav .icon-item.drop-target {
background: var(--accent-soft); background: var(--accent-soft);
border-color: var(--line); border-color: var(--line);
} }
.u-nav .icon-item.selected, .u-nav .icon-item.selected,
.u-nav .icon-item.drop-candidate,
.u-nav .icon-item.drop-target { .u-nav .icon-item.drop-target {
border-color: var(--accent); border-color: var(--accent);
} }
.u-nav .icon-item.drop-candidate {
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent);
}
.u-nav .file-icon { .u-nav .file-icon {
display: block; display: block;
height: 46px; height: 46px;
@@ -740,10 +724,15 @@
color: var(--text); color: var(--text);
display: -webkit-box; display: -webkit-box;
font-size: 12.5px; font-size: 12.5px;
height: 2.5em;
letter-spacing: normal;
line-height: 1.25; line-height: 1.25;
max-width: 100%; max-width: 100%;
overflow: hidden; overflow: hidden;
overflow-wrap: anywhere; overflow-wrap: anywhere;
white-space: normal !important;
width: 100%;
word-break: break-word;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
} }
+2 -2
View File
@@ -1,7 +1,7 @@
<!DOCTYPE PLUGIN [ <!DOCTYPE PLUGIN [
<!ENTITY name "u-navigator"> <!ENTITY name "u-navigator">
<!ENTITY author "Michael Roll"> <!ENTITY author "Michael Roll">
<!ENTITY version "2026.07.14.r011"> <!ENTITY version "2026.07.14.r012">
<!ENTITY package "&name;-&version;.tgz"> <!ENTITY package "&name;-&version;.tgz">
<!ENTITY pluginURL "https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/u-navigator.plg"> <!ENTITY pluginURL "https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/u-navigator.plg">
<!ENTITY support "https://git.casaderoll.de/michael/Unraid-Navigator"> <!ENTITY support "https://git.casaderoll.de/michael/Unraid-Navigator">
@@ -24,7 +24,7 @@
<FILE Name="/boot/config/plugins/&name;/&package;"> <FILE Name="/boot/config/plugins/&name;/&package;">
<URL>https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/packages/&package;</URL> <URL>https://git.casaderoll.de/michael/Unraid-Navigator/raw/branch/main/packages/&package;</URL>
<MD5>e16ff99a37759fe15d83d398ac3534dc</MD5> <MD5>bf8938f8ee7dfe21d4a87d014f59acc3</MD5>
</FILE> </FILE>
<FILE Run="/bin/bash"> <FILE Run="/bin/bash">