Skip to content

Commit 35a5c87

Browse files
author
Alexander Phillips
committed
Match appearance tab buttons to shared settings chrome
1 parent 7049e58 commit 35a5c87

9 files changed

Lines changed: 50 additions & 5 deletions

File tree

archive/folderview.plus-2026.04.12.02.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+
c3f5b859c33d7079d1098ba7c9ecb903092ee8be6fdb66cdf8a7f4eebb7ee5a5 folderview.plus-2026.04.15.04.txz

docs/releases/2026.04.15.04.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- Fix: Theme workspace action buttons in the Appearance tab now use the shared settings button system, so import, update, save, disable, and theme-entry actions match the rest of the plugin chrome.
2+
- Quality: `pkg_build.sh` now tolerates GNU tar warning exits when the produced archive is still readable, which hardens Windows worktree packaging against false-negative tar failures.
3+
- Test: Added regression coverage for the theme workspace button selector wiring and the readable-archive tar fallback path.

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;/dev/folderview.plus.plg">
9-
<!ENTITY version "2026.04.15.03">
10-
<!ENTITY md5 "bc8b75aff9dcb40180ac80bc5eb10874">
9+
<!ENTITY version "2026.04.15.04">
10+
<!ENTITY md5 "d26cbe9201671730aed58f25643fa9eb">
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.15.04
17+
- Fix: Theme workspace action buttons in the Appearance tab now use the shared settings button system, so import, update, save, disable, and theme-entry actions match the rest of the plugin chrome.
18+
- Quality: `pkg_build.sh` now tolerates GNU tar warning exits when the produced archive is still readable, which hardens Windows worktree packaging against false-negative tar failures.
19+
- Test: Added regression coverage for the theme workspace button selector wiring and the readable-archive tar fallback path.
20+
21+
1622
###2026.04.15.03
1723
- UX: Settings workspace layout, section flows, and table behavior.
1824

pkg_build.sh

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -625,12 +625,24 @@ if ! chmod -R 0755 "$tmpdir"; then
625625
fi
626626

627627
cd "$tmpdir"
628-
tar --sort=name \
628+
tar_status=0
629+
if ! tar --sort=name \
629630
--mtime='UTC 1970-01-01' \
630631
--owner=0 \
631632
--group=0 \
632633
--numeric-owner \
633-
-cJf "$filename" ./*
634+
-cJf "$filename" ./*; then
635+
tar_status=$?
636+
fi
637+
638+
if [ "$tar_status" -ne 0 ]; then
639+
if [ -f "$filename" ] && tar -tf "$filename" >/dev/null 2>&1; then
640+
echo "WARN: tar exited with status $tar_status but produced a readable archive; continuing." >&2
641+
else
642+
echo "ERROR: tar failed to create a readable archive (status: $tar_status)." >&2
643+
exit "$tar_status"
644+
fi
645+
fi
634646

635647
cd "$CWD"
636648
md5=$(md5sum "$filename" | awk '{print $1}')

src/folderview.plus/usr/local/emhttp/plugins/folderview.plus/styles/folderviewplus.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7494,6 +7494,9 @@ h2[data-fv-section].fv-search-match {
74947494
.custom-css > button,
74957495
.toolbar-actions > button,
74967496
.fv-first-run-actions > button,
7497+
.fv-theme-import-row > button,
7498+
.fv-theme-customize-actions > button,
7499+
.fv-theme-workspace-entry-actions > button,
74977500
.tree-visibility-controls > button,
74987501
.fv-tree-undo-actions > button,
74997502
.setting-button-row > button,
@@ -7539,6 +7542,9 @@ h2[data-fv-section].fv-search-match {
75397542
.custom-css > button,
75407543
.toolbar-actions > button,
75417544
.fv-first-run-actions > button,
7545+
.fv-theme-import-row > button,
7546+
.fv-theme-customize-actions > button,
7547+
.fv-theme-workspace-entry-actions > button,
75427548
.tree-visibility-controls > button,
75437549
.fv-tree-undo-actions > button,
75447550
.setting-button-row > button,
@@ -7573,6 +7579,9 @@ h2[data-fv-section].fv-search-match {
75737579
.custom-css > button,
75747580
.toolbar-actions > button,
75757581
.fv-first-run-actions > button,
7582+
.fv-theme-import-row > button,
7583+
.fv-theme-customize-actions > button,
7584+
.fv-theme-workspace-entry-actions > button,
75767585
.tree-visibility-controls > button,
75777586
.fv-tree-undo-actions > button,
75787587
.setting-button-row > button,
@@ -7615,6 +7624,9 @@ h2[data-fv-section].fv-search-match {
76157624
.custom-css > button,
76167625
.toolbar-actions > button,
76177626
.fv-first-run-actions > button,
7627+
.fv-theme-import-row > button,
7628+
.fv-theme-customize-actions > button,
7629+
.fv-theme-workspace-entry-actions > button,
76187630
.tree-visibility-controls > button,
76197631
.fv-tree-undo-actions > button,
76207632
.setting-button-row > button,

tests/release-flow-regression.test.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,12 @@ test('pkg_build dry-run falls back to manifest branch when git branch detection
136136

137137
assert.match(output, /Branch: dev/);
138138
});
139+
140+
test('pkg_build tolerates non-zero tar exit when the archive remains readable', () => {
141+
const pkgBuild = fs.readFileSync(path.join(repoRoot, 'pkg_build.sh'), 'utf8');
142+
assert.match(pkgBuild, /tar_status=0/);
143+
assert.match(pkgBuild, /if \[ "\$tar_status" -ne 0 \]; then/);
144+
assert.match(pkgBuild, /if \[ -f "\$filename" \] && tar -tf "\$filename" >\/dev\/null 2>&1; then/);
145+
assert.match(pkgBuild, /WARN: tar exited with status \$tar_status but produced a readable archive; continuing\./);
146+
assert.match(pkgBuild, /ERROR: tar failed to create a readable archive \(status: \$tar_status\)\./);
147+
});

tests/settings-surface-regression.test.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,9 @@ test('theme workspace lives in its own Appearance advanced tab', () => {
224224
assert.match(settingsSectionsJs, /appearance:\s*'Appearance'/);
225225
assert.match(settingsSectionsJs, /'theme-workspace':\s*'appearance'/);
226226
assert.match(settingsSectionsJs, /appearance:\s*Object\.freeze\(\[\]\)/);
227+
assert.match(settingsCss, /\.fv-theme-import-row > button,/);
228+
assert.match(settingsCss, /\.fv-theme-customize-actions > button,/);
229+
assert.match(settingsCss, /\.fv-theme-workspace-entry-actions > button,/);
227230
});
228231

229232
test('rules tab uses a source-switched workspace and bulk assignment keeps the two-column desktop layout', () => {

0 commit comments

Comments
 (0)