<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/applications/luci-app-lxc/htdocs/luci-static/resources/view, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-07-20T19:40:29Z</updated>
<entry>
<title>luci-app-lxc: build container rows with E() instead of HTML strings</title>
<updated>2026-07-20T19:40:29Z</updated>
<author>
<name>Maxim Skokov</name>
</author>
<published>2026-07-04T12:00:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=c8e1aa4e66e88c5f44e120782c98a04add66838e'/>
<id>urn:sha1:c8e1aa4e66e88c5f44e120782c98a04add66838e</id>
<content type='text'>
CSP nonce policies block inline event attributes (onclick, onchange)
even when script-src is nonce-gated. The dynamically created container
rows relied on such attributes assembled through innerHTML string
concatenation, which also interpolated the container name and the raw
container configuration into markup unescaped - a literal
"&lt;/textarea&gt;" inside a container config would break out of the
configuration editor.

Rebuild the rows and the configuration editor with E(), attaching the
click/change listeners directly (matching the idiom already used
throughout luci-app-package-manager, luci-app-upnp, etc: a function
value on an E() attribute becomes an addEventListener call, and
ev.target reads back the data-* attributes) and passing the container
name and configuration contents as text nodes instead of interpolated
markup. Remove the window.* handler exports that existed only to make
the handlers reachable from inline attributes.

Signed-off-by: Maxim Skokov &lt;skokov.m020709@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-lxc: fix stale sibling check in action_more_handler</title>
<updated>2026-07-20T19:36:17Z</updated>
<author>
<name>Maxim Skokov</name>
</author>
<published>2026-07-04T12:18:51Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=911c909663fac3c43a05341d32635bf668599322'/>
<id>urn:sha1:911c909663fac3c43a05341d32635bf668599322</id>
<content type='text'>
element.dataset never returns null (only a string when the attribute
is present, or undefined otherwise), so
"next_div.dataset['action'] !== null" was always true. Clicking
"configure" therefore removed the next sibling row unconditionally,
even when it belonged to a different, unrelated container rather than
a previously-opened configuration panel (which is what the check was
meant to detect via the data-action marker set a few lines below).

Compare against undefined instead so the removal only fires when the
next sibling is actually the marked configuration panel.

Signed-off-by: Maxim Skokov &lt;skokov.m020709@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-lxc: convert to JS</title>
<updated>2026-02-19T01:00:14Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-02-19T01:00:14Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=8a6df88443132cb254e89d828f187d4bfb2908d2'/>
<id>urn:sha1:8a6df88443132cb254e89d828f187d4bfb2908d2</id>
<content type='text'>
migrate away from the old luci-app lua control system.

See: https://github.com/openwrt/luci/issues/7310

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
</feed>
