Skip to content

luci-theme-footstrap: sync with release 0.14.14 - #9111

Merged
hnyman merged 6 commits into
openwrt:masterfrom
VizzleTF:footstrap-sync-0.14.14
Oct 10, 2026
Merged

hnyman merged 6 commits into
openwrt:masterfrom
VizzleTF:footstrap-sync-0.14.14

Conversation

@VizzleTF

@VizzleTF VizzleTF commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Pull request details

Description

Sync luci-theme-footstrap with its 0.14.14 release, split by concern:

  1. fix foreign-app styling — the .cbi-checkbox switch is drawn on the <input> itself, not on label[for] (what treewide: consistency with checkbox inputs / checkbox color change regression #9043 is waiting for), plus table, dropdown, progressbar and dark-palette fixes. CSS only.
  2. remove unused plugin and search api — the footstrap.settings.plugin / window.__fsPlugins loader, fs-search.addSource/refresh, window.__fsSearchSources, and the remember/nodeForSegs exports. Nothing in the tree used them.
  3. drop dead css rules and tokens — computed styles unchanged.
  4. dedupe js and drop pre-24.10 paths — internal refactor; the footer partial is inlined.
  5. use autofocus and shared input checks — the login form, the head template's settings validation and the wallpaper SVG read. The CGI handler and its CSP are unchanged.
  6. full load after a page litters body — the SPA router change, and its pre-24.10 fallbacks go.

po/ is untouched — Weblate owns it.

Maintainer (preferred)

@VizzleTF


Tested on

OpenWrt version: OpenWrt 25.12.4 (apk) and OpenWrt 24.10.8 (opkg), x86_64 containers, each commit of the series
LuCI version: this branch
Web browser(s): Chromium (each commit); the release itself in Chromium, Firefox and WebKit

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit checks

  • 8bfeec2 "luci-theme-footstrap: sync with release 0.14.14": the commit also removes the companion-package extension API: the footstrap.settings.plugin / window.__fsPlugins loader, fs-search.addSource/refresh, window.__fsSearchSources, and the remember and nodeForSegs exports. Neither the commit message nor the PR body mentions this. Please name it in the body, because any out-of-tree plugin will stop loading without any message.

Generated by Claude Code

Comment thread themes/luci-theme-footstrap/htdocs/luci-static/resources/fs-router.js Outdated
Comment thread themes/luci-theme-footstrap/htdocs/luci-static/resources/fs-router.js Outdated
Comment thread themes/luci-theme-footstrap/htdocs/luci-static/resources/fs-assets.js Outdated
@VizzleTF
VizzleTF force-pushed the footstrap-sync-0.14.14 branch from 8bfeec2 to 09da943 Compare October 6, 2026 09:05

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit checks

  • 09da943 "luci-theme-footstrap: sync with release 0.14.14": the commit body still leaves out that the companion-package extension API (footstrap.settings.plugin / window.__fsPlugins, fs-search.addSource/refresh, remember/nodeForSegs) is removed. The PR body now lists it, but the PR body does not end up in git history, so add one line about it to the commit message.

Generated by Claude Code

Comment thread themes/luci-theme-footstrap/htdocs/luci-static/resources/menu-footstrap-common.js Outdated
@VizzleTF
VizzleTF force-pushed the footstrap-sync-0.14.14 branch from 09da943 to 65bdac2 Compare October 7, 2026 05:58
Comment thread themes/luci-theme-footstrap/htdocs/luci-static/resources/fs-router.js Outdated

@BKPepe BKPepe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be split up before it can be reasonably reviewed.

Changing 25+ files in a single commit is already difficult to review, but the bigger issue is that the commit combines multiple independent concerns and behavioural changes. A reviewer should be able to review the cleanup/refactoring separately from the SPA router, API removal and security-related changes.

Please split the work into logically independent commits, each with a clear purpose and a reviewable scope. A downstream release being a single commit is not a good reason to preserve that commit structure when submitting it to OpenWrt.

The checkbox switch is drawn on the input itself rather than on
label[for], and framed tables keep their rounded top corners. Also fixes
a dropdown popup overflowing a phone screen, hex accent ink in dark
palettes, the progressbar value line, key/value table detection and a
selectable Overview card header. An app's offset on a table cell no
longer steps the row separator.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
Removes the companion-package extension API: the
footstrap.settings.plugin loader (window.__fsPlugins), fs-search
addSource/refresh and window.__fsSearchSources, and the remember and
nodeForSegs exports. Nothing in the tree used them.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
Removes CSS rules nothing matches and tokens nothing reads, and declares
five light-palette values once. Computed styles are unchanged.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
Shared attribute and activation helpers move into fs-widgets, axes are
exported as objects and the footer partial is inlined. Drops fallbacks
for luci-base older than 24.10 and guards for elements the chrome always
renders. It also drops module exports nothing in the tree reads.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
The login form focuses through autofocus instead of an inline script,
the head template validates its settings through two shared helpers with
the same patterns and ranges, and the wallpaper upload reads the SVG
with File.text(). The CGI handler and its CSP are unchanged.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
The client router drops its fallbacks for luci-base older than 24.10. An
inline script at the top of <body> records nodes a page appends to
<body>; when such nodes remain, the next client-side navigation is a
full page load. The Refreshing pill also stays clickable after
navigation.

Signed-off-by: Ivan Kvashonkin <vizzlef@gmail.com>
@VizzleTF
VizzleTF force-pushed the footstrap-sync-0.14.14 branch from 65bdac2 to 3090b20 Compare October 8, 2026 09:15

@openwrt-ai openwrt-ai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit checks

  • 9795412 "luci-theme-footstrap: use autofocus and shared input checks": the commit also shortens the three residual-risk notes in _sanitizeSvg() (external DTD, TAB-obfuscated javascript:, presentation-attribute url(), which the message does not mention. Add a line about it, or move those comment edits into their own commit.

Generated by Claude Code

@hnyman
hnyman merged commit 36720dd into openwrt:master Oct 10, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants