Skip to content

Commit 2d45c09

Browse files
Fix multi-row docker preview menu reopening
1 parent cb3cc54 commit 2d45c09

6 files changed

Lines changed: 20 additions & 11 deletions

File tree

archive/folderview.plus-2026.04.03.01.txz.sha256

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
8f2c01314ce1ef68256a953bf15877cb2783681ff46617ea6178926d75e2c5b3 folderview.plus-2026.04.04.24.txz

folderview.plus.plg

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@
66
<!ENTITY launch "Settings/FolderViewPlus">
77
<!ENTITY plugdir "/usr/local/emhttp/plugins/&name;">
88
<!ENTITY pluginURL "https://raw.githubusercontent.com/&github;/dev/folderview.plus.plg">
9-
<!ENTITY version "2026.04.04.23">
10-
<!ENTITY md5 "cc93a6c240689c0f70a87ea0da80ce92">
9+
<!ENTITY version "2026.04.04.24">
10+
<!ENTITY md5 "61c1a2e0c9d6039a38adafa41f1ce576">
1111
]>
1212

1313
<PLUGIN name="&name;" author="&author;" version="&version;" launch="&launch;" pluginURL="&pluginURL;" icon="folder-icon.png" support="https://forums.unraid.net/topic/197631-plugin-folderview-plus/" min="7.0.0">
1414
<CHANGES>
1515

16+
###2026.04.04.24
17+
- Fix: Docker runtime rows, folder state, and container interactions.
18+
19+
1620
###2026.04.04.23
1721
- Fix: Multi-row Docker folder previews now proxy clicks from the visible compact card content back to the lazy tooltip trigger, so container menus open again when preview rows are set above 1 or Unlimited.
1822

src/folderview.plus/usr/local/emhttp/plugins/folderview.plus/scripts/docker.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -768,7 +768,7 @@ const buildDockerPreviewItem = ({ entry = {}, settings = {}, autostart = false }
768768
switch (previewMode) {
769769
case 2:
770770
itemMarkup = `
771-
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-2 fv-preview-trigger${autostartClass}">
771+
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-2 fv-preview-trigger fv-preview-tooltip-proxy${autostartClass}">
772772
<span class="hand fv-preview-trigger fv-preview-tooltip-proxy"><img src="${safeIcon}" class="img folder-img" onerror='this.src="/plugins/dynamix.docker.manager/images/question.png"'${imageStyle}></span>
773773
</span>
774774
`;
@@ -777,7 +777,7 @@ const buildDockerPreviewItem = ({ entry = {}, settings = {}, autostart = false }
777777
case 3:
778778
case 4:
779779
itemMarkup = `
780-
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-${previewMode} fv-preview-trigger${autostartClass}">
780+
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-${previewMode} fv-preview-trigger fv-preview-tooltip-proxy${autostartClass}">
781781
<span class="inner fv-preview-trigger fv-preview-tooltip-proxy">
782782
<span class="appname${updateClass}"${textWidthStyle}><a class="exec${updateClass}">${safeName}</a></span>
783783
<span class="fv-preview-meta-compact">
@@ -794,7 +794,7 @@ const buildDockerPreviewItem = ({ entry = {}, settings = {}, autostart = false }
794794
case 1:
795795
default:
796796
itemMarkup = `
797-
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-1 fv-preview-trigger${autostartClass}">
797+
<span class="outer fv-docker-preview-card fv-docker-preview-card-compact fv-docker-preview-mode-1 fv-preview-trigger fv-preview-tooltip-proxy${autostartClass}">
798798
<span class="hand fv-preview-trigger fv-preview-tooltip-proxy"><img src="${safeIcon}" class="img folder-img" onerror='this.src="/plugins/dynamix.docker.manager/images/question.png"'${imageStyle}></span>
799799
<span class="inner fv-preview-trigger fv-preview-tooltip-proxy">
800800
<span class="appname${updateClass}"${textWidthStyle}><a class="exec${updateClass}">${safeName}</a></span>
@@ -995,11 +995,12 @@ $(document)
995995
event.preventDefault();
996996
event.stopPropagation();
997997
const ensureInitialized = $trigger.data('fvTooltipEnsureInitialized');
998-
if (typeof ensureInitialized === 'function') {
998+
const tooltipInitialized = $trigger.data('fvTooltipsterInitialized') === true;
999+
if (typeof ensureInitialized === 'function' && tooltipInitialized !== true) {
9991000
ensureInitialized('click');
10001001
return;
10011002
}
1002-
if ($trigger.data('fvTooltipsterInitialized') === true) {
1003+
if (tooltipInitialized === true) {
10031004
try {
10041005
$trigger.tooltipster('open');
10051006
} catch (_error) {

tests/docker-preview-overflow-feature.test.mjs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ test('docker runtime applies preview row layout limits and keeps compact preview
4949
assert.match(dockerJs, /const appendPreviewWebuiPlaceholder = \(\$target\) =>/);
5050
assert.match(dockerJs, /fv-preview-webui-placeholder/);
5151
assert.match(dockerJs, /const buildDockerPreviewItem = \(\{ entry = \{\}, settings = \{\}, autostart = false \}\) =>/);
52-
assert.match(dockerJs, /fv-docker-preview-mode-2 fv-preview-trigger/);
53-
assert.match(dockerJs, /fv-docker-preview-mode-\$\{previewMode\} fv-preview-trigger/);
54-
assert.match(dockerJs, /fv-docker-preview-mode-1 fv-preview-trigger/);
52+
assert.match(dockerJs, /fv-docker-preview-mode-2 fv-preview-trigger fv-preview-tooltip-proxy/);
53+
assert.match(dockerJs, /fv-docker-preview-mode-\$\{previewMode\} fv-preview-trigger fv-preview-tooltip-proxy/);
54+
assert.match(dockerJs, /fv-docker-preview-mode-1 fv-preview-trigger fv-preview-tooltip-proxy/);
5555
assert.match(dockerJs, /fv-preview-trigger fv-preview-tooltip-proxy/);
5656
assert.match(dockerJs, /\$tooltipTrigger:\s*triggerSelector === '\.fv-docker-preview-card'\s*\?\s*\$compactItem/);
5757
assert.match(dockerJs, /\$target\.data\('fvTooltipEnsureInitialized', ensureInitialized\);/);
@@ -87,7 +87,11 @@ test('docker runtime applies preview row layout limits and keeps compact preview
8787
assert.match(dockerJs, /\.on\('click\.fvDockerPreviewTooltipProxy', '\.fv-preview-tooltip-proxy', function\(event\) \{/);
8888
assert.match(dockerJs, /const \$trigger = \$proxy\.closest\('\[id\^="folder-preview-"\]'\);/);
8989
assert.match(dockerJs, /const ensureInitialized = \$trigger\.data\('fvTooltipEnsureInitialized'\);/);
90+
assert.match(dockerJs, /const tooltipInitialized = \$trigger\.data\('fvTooltipsterInitialized'\) === true;/);
91+
assert.match(dockerJs, /if \(typeof ensureInitialized === 'function' && tooltipInitialized !== true\) \{/);
9092
assert.match(dockerJs, /ensureInitialized\('click'\);/);
93+
assert.match(dockerJs, /if \(tooltipInitialized === true\) \{/);
94+
assert.match(dockerJs, /\$trigger\.tooltipster\('open'\);/);
9195
assert.doesNotMatch(dockerJs, /FolderViewDockerPreviewMemberMenu/);
9296
assert.doesNotMatch(dockerJs, /showDockerPreviewMemberMenu/);
9397
assert.match(dockerPreviewActionsScript, /event\.preventDefault\(\);\s*event\.stopPropagation\(\);\s*openWebuiInNewTab\(webuiUrl\);/s);

0 commit comments

Comments
 (0)