Fix folder labels and drag target highlighting
This commit is contained in:
+1
-1
@@ -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.
@@ -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) => {
|
||||||
|
|||||||
@@ -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
@@ -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">
|
||||||
|
|||||||
Reference in New Issue
Block a user