Skip to content

Commit d3821ec

Browse files
Use preview-based source row detection for docker clone centering
1 parent 75f1544 commit d3821ec

3 files changed

Lines changed: 26 additions & 10 deletions

File tree

209 KB
Binary file not shown.

folderview.plus.plg

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@
66
<!ENTITY launch "Settings/FolderViewPlus">
77
<!ENTITY plugdir "/usr/local/emhttp/plugins/&name;">
88
<!ENTITY pluginURL "https://raw.githubusercontent.com/&github;/main/folderview.plus.plg">
9-
<!ENTITY version "2026.03.08.6">
10-
<!ENTITY md5 "0006d7b11b6eb358a9685ebee00735a7">
9+
<!ENTITY version "2026.03.08.7">
10+
<!ENTITY md5 "75eb1e22d1cc01b213b7ce34776088b6">
1111
]>
1212

1313
<PLUGIN name="&name;" author="&author;" version="&version;" launch="&launch;" pluginURL="&pluginURL;" icon="folder-open-o" support="https://github.com/alexphillips-dev/FolderView-Plus/issues" min="7.0.0">
1414
<CHANGES>
1515

16+
###2026.03.08.7
17+
- Make Docker clone-row matching independent of table IDs/classes:
18+
- treat rows with `folder-preview` as canonical source rows,
19+
- treat rows without `folder-preview` as clone rows,
20+
- sync clone heights by folder id, then folder name, then index fallback.
21+
1622
###2026.03.08.6
1723
- Improve clone-row height matching reliability for Docker folder left column:
1824
- match clone rows to main rows by folder id, then folder name, with index fallback,

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

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ const getRenderedRowHeight = (row) => {
106106
return Math.max(Math.round(rectHeight), Math.round(offsetHeight), 0);
107107
};
108108

109-
const isMainDockerRow = (row) => {
110-
return !!(row && row.closest && row.closest('#docker_list'));
109+
const rowHasFolderPreview = (row) => {
110+
return !!(row && row.querySelector && row.querySelector('div.folder-preview'));
111111
};
112112

113113
const applyRowHeight = (row, height = 0) => {
@@ -137,8 +137,8 @@ const buildMainFolderHeightLookup = () => {
137137
const byName = new Map();
138138
const ordered = [];
139139

140-
const mainRows = Array.from(document.querySelectorAll('#docker_list tr')).filter((row) => {
141-
return !!(row && row.querySelector && row.querySelector('td.ct-name.folder-name'));
140+
const mainRows = Array.from(document.querySelectorAll('tr')).filter((row) => {
141+
return !!(row && rowHasFolderPreview(row) && row.querySelector && row.querySelector('td.ct-name.folder-name'));
142142
});
143143

144144
mainRows.forEach((row) => {
@@ -219,7 +219,7 @@ const forceAllFolderRowsVerticalCenter = () => {
219219
const cloneSeen = new Set();
220220
document.querySelectorAll('td.ct-name.folder-name').forEach((cell) => {
221221
const row = cell.parentElement;
222-
if (!row || isMainDockerRow(row) || cloneSeen.has(row)) {
222+
if (!row || rowHasFolderPreview(row) || cloneSeen.has(row)) {
223223
return;
224224
}
225225
cloneSeen.add(row);
@@ -245,10 +245,20 @@ const forceAllFolderRowsVerticalCenter = () => {
245245
});
246246
});
247247

248-
document.querySelectorAll('#docker_list td.ct-name.folder-name').forEach((cell) => {
249-
const row = cell.parentElement;
248+
document.querySelectorAll('tr').forEach((row) => {
249+
if (!rowHasFolderPreview(row)) {
250+
return;
251+
}
252+
row.querySelectorAll('td.ct-name.folder-name').forEach((cell) => {
253+
applyFolderCellCentering(cell, 0);
254+
});
250255
applyRowHeight(row, 0);
251-
applyFolderCellCentering(cell, 0);
256+
});
257+
document.querySelectorAll('tr td.ct-name.folder-name').forEach((cell) => {
258+
const row = cell.parentElement;
259+
if (row && !rowHasFolderPreview(row) && !cloneSeen.has(row)) {
260+
applyFolderCellCentering(cell, 0);
261+
}
252262
});
253263
};
254264

0 commit comments

Comments
 (0)