project/luci.git
6 weeks agoluci-mod-status: support DUID%IAID for static leases
David Härdeman [Sun, 5 Oct 2025 11:27:29 +0000 (13:27 +0200)]
luci-mod-status: support DUID%IAID for static leases

Add support for creating DUID%IAID style static leases in luci-mod-status.

Also, this contains a bugfix. lease.ip6addrs[i] is a string of the format
"<ipv6addr>/128", which validation.parseIPv6() doesn't like (it expects an IPv6
addr without the "/128" suffix).

Signed-off-by: David Härdeman <[email protected]>
6 weeks agorpcd-mod-luci,luci-mod-network: suggest DUID%IAID values
David Härdeman [Sun, 5 Oct 2025 09:52:36 +0000 (11:52 +0200)]
rpcd-mod-luci,luci-mod-network: suggest DUID%IAID values

Change the getDUIDHints RPC method to return "DUID%IAID" hints (if the IAID is
known, which it is with odhcpd). Use the complete hints in luci-mod-network.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: add initial support for multi-DUIDs
David Härdeman [Sun, 5 Oct 2025 06:50:30 +0000 (08:50 +0200)]
luci-mod-network: add initial support for multi-DUIDs

And also add support/validation for DUID%IAID values.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: consistent language in static cfg
David Härdeman [Sun, 5 Oct 2025 06:43:58 +0000 (08:43 +0200)]
luci-mod-network: consistent language in static cfg

I've tried to make this more consistent by using "for" to describe values
that are assigned to the host by the DHCP server and "of" to describe values
that are provided by the host to the DHCP server.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: simplify multi-MAC help text
David Härdeman [Sun, 5 Oct 2025 06:36:17 +0000 (08:36 +0200)]
luci-mod-network: simplify multi-MAC help text

Simplify the help text a bit, make it more consistent, capitalize "MAC", remove
references to dnsmasq.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: change IPv6 suffix to token
David Härdeman [Sun, 5 Oct 2025 06:22:15 +0000 (08:22 +0200)]
luci-mod-network: change IPv6 suffix to token

The term "token" is widely used, e.g. in the relevant internet draft [1],
ip-token(8), systemd-network(5), NetworkManager [2], etc.

[1] https://datatracker.ietf.org/doc/html/draft-chown-6man-tokenised-ipv6-identifiers-02
[2] https://networkmanager.dev/docs/api/1.32.10/settings-ipv6.html

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network,-status: update DHCPv6 lease headers
David Härdeman [Sun, 5 Oct 2025 05:51:23 +0000 (07:51 +0200)]
luci-mod-network,-status: update DHCPv6 lease headers

Make it clearer that a single DHCPv6 lease can encompass several IPv6
addresses, e.g.  when GUA and ULA prefixes are available.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-app-olsr: fix const reassignment to let
Paul Donald [Fri, 24 Oct 2025 15:40:03 +0000 (17:40 +0200)]
luci-app-olsr: fix const reassignment to let

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-base: widgets: fix const -> let variable which is later reassigned
Paul Donald [Fri, 24 Oct 2025 15:30:39 +0000 (17:30 +0200)]
luci-base: widgets: fix const -> let variable which is later reassigned

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-mod-network: create separate tabs in dhcp.js
David Härdeman [Wed, 22 Oct 2025 00:08:35 +0000 (02:08 +0200)]
luci-mod-network: create separate tabs in dhcp.js

Create three main tabs ("dnsmasq", "odhcpd", "Leases") in dhcp.js and
sort the previous tabs under these main tabs.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: split PXE into dnsmasq/odhcpd functions in dhcp.js
David Härdeman [Tue, 21 Oct 2025 21:53:29 +0000 (23:53 +0200)]
luci-mod-network: split PXE into dnsmasq/odhcpd functions in dhcp.js

This makes it clearer which daemon each part belongs to. But more
importantly, it lays the ground for the next patch.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: add a odhcpd tab to dhcp.js
David Härdeman [Tue, 21 Oct 2025 21:43:15 +0000 (23:43 +0200)]
luci-mod-network: add a odhcpd tab to dhcp.js

Add a separate tab with the global odhcpd settings.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: move leases cfg to own function in dhcp.js
David Härdeman [Tue, 21 Oct 2025 21:06:07 +0000 (23:06 +0200)]
luci-mod-network: move leases cfg to own function in dhcp.js

This makes it a bit clearer what is specific to leases and also
prepares for the following patches. No actual code changes.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: move dnsmasq cfg to own function in dhcp.js
David Härdeman [Tue, 21 Oct 2025 20:56:00 +0000 (22:56 +0200)]
luci-mod-network: move dnsmasq cfg to own function in dhcp.js

This makes it a bit clearer what is specific to dnsmasq and also
prepares for the following patches. No actual code changes.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: reorder tabs in dhcp.js
David Härdeman [Tue, 21 Oct 2025 20:20:39 +0000 (22:20 +0200)]
luci-mod-network: reorder tabs in dhcp.js

This is just in preparation for the following patches.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: simplify cbi_update_table in dhcp.js
David Härdeman [Tue, 21 Oct 2025 20:15:56 +0000 (22:15 +0200)]
luci-mod-network: simplify cbi_update_table in dhcp.js

cbi_update_table() can already take a string suitable for
.querySelector() as its first argument. In addition, it will do the
right thing if the element isn't found, so this can be simplified a bit.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: remove customi18n() from dhcp.js
David Härdeman [Tue, 21 Oct 2025 20:03:29 +0000 (22:03 +0200)]
luci-mod-network: remove customi18n() from dhcp.js

The single user isn't really enough to warrant this function, so remove
it to prepare for the following patches.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: remove firewall loading in dhcp.js
David Härdeman [Tue, 21 Oct 2025 19:58:26 +0000 (21:58 +0200)]
luci-mod-network: remove firewall loading in dhcp.js

This is just a leftover from the dns/dhcp split. It isn't used in
dhcp.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: move var ipaddrs in dhcp.js
David Härdeman [Mon, 20 Oct 2025 21:46:22 +0000 (23:46 +0200)]
luci-mod-network: move var ipaddrs in dhcp.js

Move var ipaddrs down to the sole place where it is used.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: change && to || for DHCP tab predicates
Paul Donald [Fri, 24 Oct 2025 13:36:09 +0000 (15:36 +0200)]
luci-mod-network: change && to || for DHCP tab predicates

Each prerequisite inside a { } forms an and condition.
Each {} prerequisite forms an or condition.

The tab wasn't displayed because odhcpd was not installed. The condition set
required both. Now only require one or the other to display the DHCP tab.

Closes #8033

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-base: add ability to hide section titles
David Härdeman [Wed, 22 Oct 2025 21:22:14 +0000 (23:22 +0200)]
luci-base: add ability to hide section titles

The rationale here is that tabbed CBIMaps were introduced in commit
082fd9ff10b.

With tabbed maps, code could typically look like this:

m = new form.Map('foobar', _('FooBar'));
m.tabbed = true;
s = m.section(form.TypedSection, 'foo', _('foo Settings'));

The problem is that the title of "s" will be used as the name of the tab
rendered in "m", but also rendered as an <h3> right below the tab. IOW,
the same information will be presented twice, which looks weird.

Doing this instead...

m = new form.Map('foobar', _('FooBar'));
m.tabbed = true;
s = m.section(form.TypedSection, 'foo');

...means that the superfluous <h3> won't be rendered (since "s" has no
title), but the tab will then simply have the name of the section
("foo"), which can't be translated (bad).

After this change, the tabbed map can be written like this:

m = new form.Map('foobar', _('FooBar'));
m.tabbed = true;
s = m.section(form.TypedSection, 'foo', _('foo Settings'));
s.hidetitle = true;

Which will give the Map tab the name "foo Settings", but won't add a
title for the TypedSection right under the tab.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-app-frpc: Add the bind_addr & bind_port options to the visitor role.
Roc Lai [Tue, 21 Oct 2025 15:19:44 +0000 (23:19 +0800)]
luci-app-frpc: Add the bind_addr & bind_port options to the visitor role.

Fix: https://github.com/openwrt/luci/issues/8024

Signed-off-by: Roc Lai <[email protected]>
6 weeks agoluci-app: fix translation strings
Andy Chiang [Wed, 22 Oct 2025 09:49:29 +0000 (16:49 +0700)]
luci-app: fix translation strings

The current handling method introduces extraneous spaces into the translations.
For instance, 'System Log', which is correctly translated to Japanese as 'システムログ' (without extra spaces), is being displayed as 'システム ログ' under the current approach.
Other CJK/Southeast Asian languages are experiencing similar issues, including Chinese, Thai, and Lao.
Therefore, these elements should be translated together as a single unit, rather than separately.

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-network: remove unused dns_search property
Paul Donald [Wed, 22 Oct 2025 20:29:52 +0000 (22:29 +0200)]
luci-mod-network: remove unused dns_search property

The same functionality is fulfilled by the "domain" property. Two fields which
have the same semantics and purpose. None of odhcpd, dnsmasq or odhcp6c use the
dns_search property.

See also:
https://github.com/openwrt/odhcpd/issues/206

The local device might anyway use the "search" entries from /etc/resolv.conf at
the lower layers, but IPv6 RA and DHCPv6 is controlled by the "domain" property,
which is distributed to clients.

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-app-travelmate: sync with update 2.2.1-3
Dirk Brenken [Wed, 22 Oct 2025 19:02:44 +0000 (21:02 +0200)]
luci-app-travelmate: sync with update 2.2.1-3

Signed-off-by: Dirk Brenken <[email protected]>
6 weeks agoluci-mod-status: routes: prevent null error if the commands don't resolve
Paul Donald [Tue, 21 Oct 2025 23:22:04 +0000 (01:22 +0200)]
luci-mod-status: routes: prevent null error if the commands don't resolve

Closes #8026

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-mod-status: partial revert of styling changes
Paul Donald [Tue, 21 Oct 2025 14:25:18 +0000 (16:25 +0200)]
luci-mod-status: partial revert of styling changes

follow-up to 788e47034becc7806485b40dbef9774a14f8ea9d

Some of the CSS changes have knock-on effects and change behaviour in
other display areas, especially when the CSS is minified.

Simplified to change between label flavours on hide/show status.

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoTranslated using Weblate (Chinese (Simplified Han script))
Hosted Weblate [Mon, 20 Oct 2025 06:48:33 +0000 (08:48 +0200)]
Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (45 of 45 strings)

Translation: OpenWrt/LuCI/applications/cloudflared
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscloudflared/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (46 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/zh_Hans/

Translated using Weblate (Persian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Persian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Portuguese)

Currently translated at 85.7% (24 of 28 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (28 of 28 strings)

Translation: OpenWrt/LuCI/applications/udpxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsudpxy/zh_Hant/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (171 of 171 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (197 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/zh_Hans/

Translated using Weblate (Polish)

Currently translated at 100.0% (284 of 284 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2588 of 2588 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hant/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Translated using Weblate (Polish)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (Georgian)

Currently translated at 11.2% (296 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ka/

Translated using Weblate (Georgian)

Currently translated at 68.6% (195 of 284 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (51 of 51 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/it/

Translated using Weblate (Italian)

Currently translated at 100.0% (26 of 26 strings)

Translation: OpenWrt/LuCI/applications/dcwapd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdcwapd/it/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2588 of 2588 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hant/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hans/

Co-authored-by: Danial Behzadi <[email protected]>
Co-authored-by: DragonBluep <[email protected]>
Co-authored-by: Franco Castillo <[email protected]>
Co-authored-by: Hosted Weblate <[email protected]>
Co-authored-by: KING APPS <[email protected]>
Co-authored-by: Meano Lee <[email protected]>
Co-authored-by: Piotr Kołtun <[email protected]>
Co-authored-by: Random <[email protected]>
Co-authored-by: Temuri Doghonadze <[email protected]>
Co-authored-by: ZW <[email protected]>
Co-authored-by: nKsyn <[email protected]>
Co-authored-by: ssantos <[email protected]>
Signed-off-by: DragonBluep <[email protected]>
Signed-off-by: Franco Castillo <[email protected]>
Signed-off-by: Meano Lee <[email protected]>
Signed-off-by: Piotr Kołtun <[email protected]>
Signed-off-by: Random <[email protected]>
Signed-off-by: Temuri Doghonadze <[email protected]>
Signed-off-by: ZW <[email protected]>
Signed-off-by: nKsyn <[email protected]>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/ka/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/pl/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnatmap/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsp910nd/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/fa/
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/natmap
Translation: OpenWrt/LuCI/applications/p910nd
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard

6 weeks agomodules: fix default values
Andy Chiang [Mon, 20 Oct 2025 21:18:35 +0000 (04:18 +0700)]
modules: fix default values

fix default values for luci-base and luci-mod-{dashboard,status,system}

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-app-acme: fix ACL JSON
Paul Donald [Tue, 21 Oct 2025 11:03:38 +0000 (13:03 +0200)]
luci-app-acme: fix ACL JSON

follow-up fix for fd830434cb5fec77b258f22655dced237ea81f0b

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-app-*: migrate LogreadBox consumers to use new permission ACLs
Paul Donald [Mon, 20 Oct 2025 11:11:05 +0000 (13:11 +0200)]
luci-app-*: migrate LogreadBox consumers to use new permission ACLs

"ubus": {
"log": [ "read" ]
}

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-mod-status: update syslog viewer to use the remodeled CBILogreadBox
Paul Donald [Mon, 20 Oct 2025 11:10:59 +0000 (13:10 +0200)]
luci-mod-status: update syslog viewer to use the remodeled CBILogreadBox

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-base: remodel the LogreadBox after the syslog viewer
Paul Donald [Mon, 20 Oct 2025 19:11:10 +0000 (21:11 +0200)]
luci-base: remodel the LogreadBox after the syslog viewer

Remodeled the CBILogreadBox after the syslog viewer. Also
updated to use ubus log read, and drops the use of the logread binary
(logread is broken on snapshots). The JSON output from ubus is nice
enough to work with.

One potential drawback is that all log entries are sent to the browser
(as it always has been), and no on-device pre-filtering is available yet
except for line count.

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-mod-*: initialize default values
Paul Donald [Mon, 20 Oct 2025 19:10:54 +0000 (21:10 +0200)]
luci-mod-*: initialize default values

follow-up to
e67465da5e4bb2afdd0216f4875c627f287a7f3d
b0004ad39cbe46ee449dd5576f0433847e777bb7
71ea35fc7f41e8b1c6c02e0bcc8d8bfcba3bde7f

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-theme-bootstrap: add width for localtime
Andy Chiang [Fri, 17 Oct 2025 13:43:36 +0000 (20:43 +0700)]
luci-theme-bootstrap: add width for localtime

set an appropriate width for #localtime

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-dashboard: use localized time
Andy Chiang [Wed, 15 Oct 2025 17:48:55 +0000 (00:48 +0700)]
luci-mod-dashboard: use localized time

use localized time

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-system: use localized time
Andy Chiang [Wed, 15 Oct 2025 17:48:45 +0000 (00:48 +0700)]
luci-mod-system: use localized time

use localized time

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-status: use localized time
Andy Chiang [Wed, 15 Oct 2025 17:48:26 +0000 (00:48 +0700)]
luci-mod-status: use localized time

use localized time

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-status: remove redundant spaces
Andy Chiang [Mon, 20 Oct 2025 08:43:01 +0000 (15:43 +0700)]
luci-mod-status: remove redundant  spaces

remove redundant spaces in nftables.js.

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-base: use zone names without spaces
Paul Donald [Mon, 20 Oct 2025 12:38:12 +0000 (14:38 +0200)]
luci-base: use zone names without spaces

See build: stop zoneinfo builder scripts changing '_' -> ' '
f36f014229fcda2eb962ac3c5355ab089777ac0a

Signed-off-by: Paul Donald <[email protected]>
6 weeks agobuild: stop zoneinfo builder scripts changing '_' -> ' '
Paul Donald [Mon, 20 Oct 2025 12:36:52 +0000 (14:36 +0200)]
build: stop zoneinfo builder scripts changing '_' -> ' '

Zone names are correct when they contain an underscore, especially when
the zone names are used as input to functions and libraries.

See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

e.g.

Africa/Addis_Ababa
Africa/Dar_es_Salaam
Pacific/Port_Moresby

This can be revised in future if some GUI aesthetic is required.

Signed-off-by: Paul Donald <[email protected]>
6 weeks agoluci-mod-system: fix JSMIN Error
Andy Chiang [Mon, 20 Oct 2025 01:22:11 +0000 (08:22 +0700)]
luci-mod-system: fix JSMIN Error

jsmin cannot handle regular expressions in this format, so use RegExp() instead.

fixes: #8020

Signed-off-by: Andy Chiang <[email protected]>
6 weeks agoluci-mod-network: add global DUID cfg option
David Härdeman [Fri, 10 Oct 2025 08:16:35 +0000 (10:16 +0200)]
luci-mod-network: add global DUID cfg option

This exposes the default DHCP DUID config option in the LuCI interface.

For reference:
https://github.com/openwrt/openwrt/pull/20359
https://github.com/openwrt/odhcpd/pull/274

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-app-travelmate: sync with update 2.2.1-2
Dirk Brenken [Sun, 19 Oct 2025 18:23:36 +0000 (20:23 +0200)]
luci-app-travelmate: sync with update 2.2.1-2

Signed-off-by: Dirk Brenken <[email protected]>
6 weeks agoluci-mod-network: remove unused permissions from dns
David Härdeman [Wed, 15 Oct 2025 17:54:49 +0000 (19:54 +0200)]
luci-mod-network: remove unused permissions from dns

Now that all options have been organized per view, remove unused acl
permissions from dns.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: remove unused code from dhcp/dns
David Härdeman [Wed, 15 Oct 2025 17:40:36 +0000 (19:40 +0200)]
luci-mod-network: remove unused code from dhcp/dns

Now that all options have been organized per view, remove unused code from
both.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: retitle dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 17:28:56 +0000 (19:28 +0200)]
luci-mod-network: retitle dhcp/dns views

And remove a confusing reference to dnsmasq at the top of each page, the
message is a bit of a non-sequitur and doesn't really add any useful
information.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "pxe_tftp" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 17:12:19 +0000 (19:12 +0200)]
luci-mod-network: organize "pxe_tftp" tab in dhcp/dns views

Delete the tab from dns.js, sort the options that belong to it in dhcp.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "relay" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 17:08:31 +0000 (19:08 +0200)]
luci-mod-network: organize "relay" tab in dhcp/dns views

Delete the tab from dns.js, sort the options that belong to it in dhcp.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "ipsets" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 17:05:22 +0000 (19:05 +0200)]
luci-mod-network: organize "ipsets" tab in dhcp/dns views

Delete the tab from dhcp.js, sort the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "leases" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 17:02:30 +0000 (19:02 +0200)]
luci-mod-network: organize "leases" tab in dhcp/dns views

Delete the tab from dns.js, sort the options that belong to it in dhcp.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "files" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:56:51 +0000 (18:56 +0200)]
luci-mod-network: organize "files" tab in dhcp/dns views

Sort the options in the "files" tab so that they are all grouped together in
the order they appear in the UI and delete ones that are specific to DNS from
dhcp.js and vice versa.

Retitle the tab for the dhcp view from "Resolv & Hosts Files" to "Files".

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "logging" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:50:11 +0000 (18:50 +0200)]
luci-mod-network: organize "logging" tab in dhcp/dns views

Sort the options in the "logging" tab so that they are all grouped together in
the order they appear in the UI and delete ones that are specific to DNS from
dhcp.js and vice versa.

Note that this means that the "logfacility" option is present in both views,
since it controls the general logfacility of dnsmasq, both for DNS and DHCP.

We might consider adding a help text blurb explaining that, but I've
intentionally not changed any code in these patches.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "limits" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:43:03 +0000 (18:43 +0200)]
luci-mod-network: organize "limits" tab in dhcp/dns views

Sort the options in the "limits" tab so that they are all grouped together in
the order they appear in the UI and delete ones that are specific to DNS from
dhcp.js and vice versa.

Only one option is relevant to the dhcp view, so move it to the "general" tab.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "forward" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:40:25 +0000 (18:40 +0200)]
luci-mod-network: organize "forward" tab in dhcp/dns views

Delete the tab from dhcp.js, sort the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "filteropts" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:35:42 +0000 (18:35 +0200)]
luci-mod-network: organize "filteropts" tab in dhcp/dns views

Delete the tab from dhcp.js, sort the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "dnssec" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:29:53 +0000 (18:29 +0200)]
luci-mod-network: organize "dnssec" tab in dhcp/dns views

Delete the tab from dhcp.js, sort the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "dnsrecords" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:21:58 +0000 (18:21 +0200)]
luci-mod-network: organize "dnsrecords" tab in dhcp/dns views

Delete the tab from dhcp.js, sort the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "devices" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 16:02:21 +0000 (18:02 +0200)]
luci-mod-network: organize "devices" tab in dhcp/dns views

Sort the options in the "devices" tab so that they are all grouped together in
the order they appear in the UI and delete ones that are specific to DNS from
dhcp.js and vice versa.

Note that this means that the "nonwildcard", "interface" and "notinterface"
options are present in both views, since they control the interfaces that
dnsmasq listens to both for DNS and DHCP.

We might consider adding a help text blurb explaining that, but I've
intentionally not changed any code in these patches.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "cache" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 15:58:10 +0000 (17:58 +0200)]
luci-mod-network: organize "cache" tab in dhcp/dns views

Delete the tab from dhcp.js, mark the options that belong to it in dns.js.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: organize "general" tab in dhcp/dns views
David Härdeman [Wed, 15 Oct 2025 15:35:42 +0000 (17:35 +0200)]
luci-mod-network: organize "general" tab in dhcp/dns views

Sort the options in the "general" tab so that they are all grouped together in
the order they appear in the UI and delete ones that are specific to DNS from
dhcp.js and vice versa.

Note that this means that the "domain" option is present in both views.

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-mod-network: split dhcp and dns into separate views
David Härdeman [Wed, 15 Oct 2025 15:18:07 +0000 (17:18 +0200)]
luci-mod-network: split dhcp and dns into separate views

In order to make the following patches easier to follow, this patch simply
makes an identical copy of:

modules/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js

as:

modules/luci-mod-network/htdocs/luci-static/resources/view/network/dns.js

Signed-off-by: David Härdeman <[email protected]>
6 weeks agoluci-app-travelmate: sync with release 2.2.1
Dirk Brenken [Sat, 18 Oct 2025 20:02:58 +0000 (22:02 +0200)]
luci-app-travelmate: sync with release 2.2.1

Signed-off-by: Dirk Brenken <[email protected]>
7 weeks agoluci-base: rename getLocaltime to getUnixtime
Paul Donald [Fri, 17 Oct 2025 11:44:16 +0000 (13:44 +0200)]
luci-base: rename getLocaltime to getUnixtime

There appear to be no consumers of getLocaltime. One instance of a
callGetLocaltime uses the system info call whose localtime property uses
tm->tm_gmtoff which is "Seconds East of UTC" i.e. a unixtime value
with the timezone baked in to the value.

Sometimes we actually want Unixtime. So rename to clarify what this
function actually returns.

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-status: remove superfluous argument
David Härdeman [Wed, 15 Oct 2025 18:05:27 +0000 (20:05 +0200)]
luci-mod-status: remove superfluous argument

As part of the commit adding MAC vendor identification (PR #7931), and
subsequent fixups, parseRoutes() grew an unused macs argument.

Signed-off-by: David Härdeman <[email protected]>
7 weeks agoluci-mod-status,-network: remove checkUfpInstalled
David Härdeman [Wed, 15 Oct 2025 13:07:32 +0000 (15:07 +0200)]
luci-mod-status,-network: remove checkUfpInstalled

Right now, the checkUfpInstalled RPC call is performed first, and only after
that can the other Promises be called. Simplify this by adding a single check
for /usr/sbin/ufpd in the rpcd ucode, and replace calls to checkUfpInstalled()
with simple L.hasSystemFeature('ufpd') check (which is only done once, and
cached).

This also allows the 'stat' permission to be removed from a couple of acls.

Signed-off-by: David Härdeman <[email protected]>
7 weeks agoluci-mod-status: handle ct helpers in nftables
Paul Donald [Wed, 15 Oct 2025 13:23:19 +0000 (15:23 +0200)]
luci-mod-status: handle ct helpers in nftables

These appear when modules such as the following are installed:
-kmod-nf-nathelper
-kmod-nf-nathelper-extra

They render as e.g.:

 Utilise *ftp* conntrack helper

when fw4 rules similar to the following exist

```
table inet fw4 {
        chain helper_lan {
                tcp dport 21 ct helper set "ftp" comment "!fw4: FTP passive connection tracking"
        }
}
```

ht @dave14305 for the working code diff

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoMerge pull request #8003 from TDT-AG/pr/20251011-luci-mod-network
Florian Eckert [Wed, 15 Oct 2025 10:49:35 +0000 (12:49 +0200)]
Merge pull request #8003 from TDT-AG/pr/20251011-luci-mod-network

luci-mod-network: add carrier info to interface page

7 weeks agoluci-mod-network: add carrier info to interface page
Florian Eckert [Tue, 7 Oct 2025 08:44:18 +0000 (10:44 +0200)]
luci-mod-network: add carrier info to interface page

Currently the LuCI does not show whether a carrier is available on the
interface or not. On ethernet devices the carrier indicates whether a cable
is plugged in or not. This commit adds this functionality, which makes
debugging easier.

Signed-off-by: Florian Eckert <[email protected]>
7 weeks agoTranslated using Weblate (Latvian)
Hosted Weblate [Tue, 14 Oct 2025 21:10:19 +0000 (23:10 +0200)]
Translated using Weblate (Latvian)

Currently translated at 78.5% (11 of 14 strings)

Translation: OpenWrt/LuCI/applications/pagekitec
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspagekitec/lv/

Translated using Weblate (Latvian)

Currently translated at 100.0% (12 of 12 strings)

Translation: OpenWrt/LuCI/applications/bcp38
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbcp38/lv/

Translated using Weblate (Latvian)

Currently translated at 100.0% (6 of 6 strings)

Translation: OpenWrt/LuCI/applications/olsr-services
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr-services/lv/

Translated using Weblate (German)

Currently translated at 92.1% (164 of 178 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/de/

Translated using Weblate (Lithuanian)

Currently translated at 91.5% (162 of 177 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/lt/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (161 of 161 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/lt/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (162 of 162 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/lt/

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (28 of 28 strings)

Translated using Weblate (German)

Currently translated at 100.0% (28 of 28 strings)

Translated using Weblate (German)

Currently translated at 100.0% (253 of 253 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/de/

Translated using Weblate (German)

Currently translated at 78.0% (139 of 178 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/de/

Translated using Weblate (German)

Currently translated at 52.1% (62 of 119 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/de/

Translated using Weblate (German)

Currently translated at 94.1% (16 of 17 strings)

Translation: OpenWrt/LuCI/applications/eoip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationseoip/de/

Translated using Weblate (German)

Currently translated at 100.0% (28 of 28 strings)

Translated using Weblate (German)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (German)

Currently translated at 100.0% (211 of 211 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/de/

Translated using Weblate (German)

Currently translated at 100.0% (66 of 66 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/de/

Translated using Weblate (German)

Currently translated at 100.0% (59 of 59 strings)

Translation: OpenWrt/LuCI/applications/dump1090
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdump1090/de/

Translated using Weblate (German)

Currently translated at 100.0% (290 of 290 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/de/

Translated using Weblate (German)

Currently translated at 100.0% (83 of 83 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/de/

Translated using Weblate (German)

Currently translated at 100.0% (205 of 205 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/de/

Translated using Weblate (German)

Currently translated at 100.0% (171 of 171 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/de/

Translated using Weblate (German)

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (German)

Currently translated at 100.0% (138 of 138 strings)

Translated using Weblate (German)

Currently translated at 98.1% (52 of 53 strings)

Translated using Weblate (German)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/es/

Translated using Weblate (German)

Currently translated at 96.9% (2558 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/de/

Translated using Weblate (Polish)

Currently translated at 100.0% (211 of 211 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/pl/

Translated using Weblate (Vietnamese)

Currently translated at 95.6% (132 of 138 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Polish)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/pl/

Translated using Weblate (Latvian)

Currently translated at 5.6% (149 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/lv/

Translated using Weblate (Latvian)

Currently translated at 50.0% (6 of 12 strings)

Translation: OpenWrt/LuCI/applications/bcp38
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbcp38/lv/

Translated using Weblate (Latvian)

Currently translated at 100.0% (2 of 2 strings)

Translation: OpenWrt/LuCI/applications/olsr-viz
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr-viz/lv/

Translated using Weblate (Turkish)

Currently translated at 5.0% (6 of 119 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (51 of 51 strings)

Translation: OpenWrt/LuCI/applications/acme
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsacme/tr/

Translated using Weblate (Russian)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/ru/

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (74 of 74 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/zh_Hans/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (89 of 89 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/zh_Hant/

Translated using Weblate (Turkish)

Currently translated at 100.0% (59 of 59 strings)

Translation: OpenWrt/LuCI/applications/dump1090
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdump1090/tr/

Translated using Weblate (Turkish)

Currently translated at 100.0% (26 of 26 strings)

Translation: OpenWrt/LuCI/applications/dcwapd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdcwapd/tr/

Translated using Weblate (Turkish)

Currently translated at 97.8% (278 of 284 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (403 of 403 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/ru/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.3% (180 of 183 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/ru/

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (2588 of 2588 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/zh_Hant/

Translated using Weblate (Russian)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Co-authored-by: Blubberland <[email protected]>
Co-authored-by: Džiugas Januševičius <[email protected]>
Co-authored-by: Edgars Andersons <[email protected]>
Co-authored-by: Franco Castillo <[email protected]>
Co-authored-by: Hosted Weblate <[email protected]>
Co-authored-by: Nguyễn Ngọc Hiền <[email protected]>
Co-authored-by: Oğuz Ersen <[email protected]>
Co-authored-by: Piotr Kołtun <[email protected]>
Co-authored-by: SnIPeRSnIPeR <[email protected]>
Co-authored-by: V.Harkonnen <[email protected]>
Co-authored-by: ZW <[email protected]>
Co-authored-by: 大王叫我来巡山 <[email protected]>
Signed-off-by: "V.Harkonnen" <[email protected]>
Signed-off-by: Blubberland <[email protected]>
Signed-off-by: Džiugas Januševičius <[email protected]>
Signed-off-by: Edgars Andersons <[email protected]>
Signed-off-by: Franco Castillo <[email protected]>
Signed-off-by: Oğuz Ersen <[email protected]>
Signed-off-by: Piotr Kołtun <[email protected]>
Signed-off-by: SnIPeRSnIPeR <[email protected]>
Signed-off-by: ZW <[email protected]>
Signed-off-by: 大王叫我来巡山 <[email protected]>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscommands/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/tr/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnatmap/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnatmap/lt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/vi/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale2/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/tr/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/de/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/de/
Translation: OpenWrt/LuCI/applications/commands
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/natmap
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/radicale2
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/upnp
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard

7 weeks agoluci-app-travelmate: sync with release 2.2.0
Dirk Brenken [Tue, 14 Oct 2025 20:14:47 +0000 (22:14 +0200)]
luci-app-travelmate: sync with release 2.2.0

Signed-off-by: Dirk Brenken <[email protected]>
7 weeks agoluci-mod-status: fix ipv4 source
Andy Chiang [Mon, 13 Oct 2025 19:02:11 +0000 (02:02 +0700)]
luci-mod-status: fix ipv4 source

ipv4 source in json is prefsrc not src

Signed-off-by: Andy Chiang <[email protected]>
7 weeks agoluci-mod-status: routes; refactor and add routesj page for ip -j output
Paul Donald [Mon, 13 Oct 2025 18:28:06 +0000 (20:28 +0200)]
luci-mod-status: routes; refactor and add routesj page for ip -j output

follow-up fix to 89ae891462ea9928fc2b01e25c1611b1b71352d5

fs depends here should be OR, not AND :)

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-system: minor code fixes for repokeys and sshkeys
Paul Donald [Mon, 13 Oct 2025 12:33:23 +0000 (14:33 +0200)]
luci-mod-system: minor code fixes for repokeys and sshkeys

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-status: fix luci-bwc segfault
Andy Chiang [Mon, 13 Oct 2025 05:48:03 +0000 (12:48 +0700)]
luci-mod-status: fix luci-bwc segfault

fixes: #8008

Signed-off-by: Andy Chiang <[email protected]>
7 weeks agoMerge pull request #8002 from TDT-AG/pr/20251010-luci-mod-network
Florian Eckert [Mon, 13 Oct 2025 05:58:52 +0000 (07:58 +0200)]
Merge pull request #8002 from TDT-AG/pr/20251010-luci-mod-network

luci-mod-network: show stop button if interface start is pending

7 weeks agoluci-mod-status: routes; refactor and add routesj page for ip -j output
Paul Donald [Sun, 12 Oct 2025 17:51:29 +0000 (19:51 +0200)]
luci-mod-status: routes; refactor and add routesj page for ip -j output

follow-up fix to 89ae891462ea9928fc2b01e25c1611b1b71352d5

Should not have duplicate keys

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-status: routes; refactor and add routesj page for ip -j output
Paul Donald [Sun, 12 Oct 2025 16:37:57 +0000 (18:37 +0200)]
luci-mod-status: routes; refactor and add routesj page for ip -j output

Refactor functions and variables to ES6 standard.

Detect whether one of the JSON enabled ip variants is installed, and
prefer it to display route information over the text handling. This is
handled by the acls and menu depends.

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-status: handle vmaps in nftables
Paul Donald [Fri, 3 Oct 2025 21:49:54 +0000 (23:49 +0200)]
luci-mod-status: handle vmaps in nftables

- Support vmaps
- Support goto, continue actions
- Recognize DSCP and MAC address expressions
- Support log action without prefix.

Signed-off-by: Paul Donald <[email protected]>
7 weeks agogithub: update workflow actions
Paul Donald [Sun, 12 Oct 2025 16:31:10 +0000 (18:31 +0200)]
github: update workflow actions

checkout to v5
setup-node to v5
peaceiris/actions-gh-pages to v4

Signed-off-by: Paul Donald <[email protected]>
7 weeks agoluci-mod-status: add source/gateway display for ipv4/ipv6
Andy Chiang [Fri, 10 Oct 2025 09:58:19 +0000 (16:58 +0700)]
luci-mod-status: add source/gateway display for ipv4/ipv6

*add source display for ipv4
*add gateway display for ipv6

Signed-off-by: Andy Chiang <[email protected]>
7 weeks agoluci-mod-network: resolve authentication issues during 802.1X Wi-Fi connection
tuvokyang [Sat, 20 Sep 2025 07:05:23 +0000 (15:05 +0800)]
luci-mod-network: resolve authentication issues during 802.1X Wi-Fi connection

Signed-off-by: tuvokyang <[email protected]>
7 weeks agoluci-app-ddns: fix toggle button not working
Liangbin Lian [Wed, 6 Aug 2025 04:13:06 +0000 (12:13 +0800)]
luci-app-ddns: fix toggle button not working

`this.callInitAction('ddns', 'enable')` always return true, cause ddns service always disabled later.

Signed-off-by: Liangbin Lian <[email protected]>
7 weeks agobuild: fix Traditional Chinese name
Andy Chiang [Sat, 11 Oct 2025 06:57:43 +0000 (13:57 +0700)]
build: fix Traditional Chinese name

fix Chinese name

Signed-off-by: Andy Chiang <[email protected]>
8 weeks agoMerge pull request #7991 from stangri/master-luci-app-pbr
Stan Grishin [Fri, 10 Oct 2025 23:35:12 +0000 (16:35 -0700)]
Merge pull request #7991 from stangri/master-luci-app-pbr

luci-app-pbr: update to 1.2.0-r2

8 weeks agoluci-base: add odhcpd feature detection
David Härdeman [Fri, 10 Oct 2025 12:54:11 +0000 (14:54 +0200)]
luci-base: add odhcpd feature detection

For dnsmasq, feature detection is currently supported like this:

L.hasSystemFeature('dnsmasq', 'dhcpv6')

while for odhcpd, only a basic check is supported:

L.hasSystemFeature('odhcpd')

With this patch, a similar feature check is also possible for odhcpd,
e.g.:

L.hasSystemFeature('odhcpd', 'dhcpv6')

Signed-off-by: David Härdeman <[email protected]>
8 weeks agoluci-mod-status: Fix call params to routes.js functions
Paul Donald [Fri, 10 Oct 2025 16:39:19 +0000 (18:39 +0200)]
luci-mod-status: Fix call params to routes.js functions

follow-up fix to 70b7176fc2547e3de1fa3139d0e25adfd3fcd66e

Signed-off-by: Paul Donald <[email protected]>
8 weeks agoluci-app-privoxy: add PKG_MAINTAINER
Sergey Ponomarev [Mon, 23 Jun 2025 17:33:49 +0000 (20:33 +0300)]
luci-app-privoxy: add PKG_MAINTAINER

Signed-off-by: Sergey Ponomarev <[email protected]>
8 weeks agoluci-app-lldpd: add PKG_MAINTAINER
Sergey Ponomarev [Sun, 1 Dec 2024 12:14:15 +0000 (14:14 +0200)]
luci-app-lldpd: add PKG_MAINTAINER

Signed-off-by: Sergey Ponomarev <[email protected]>
8 weeks agoluci-app-lxc: make regex for templates less strict
Richard Muzik [Wed, 2 Jul 2025 05:40:43 +0000 (07:40 +0200)]
luci-app-lxc: make regex for templates less strict

Starting with LXC v6.0.0, the way templates are parsed has changed [1].
As a result, trailing whitespace is added to each string except the last
one. However, if the last string (i.e., a timestamp) is shorter—such as
when using a different timestamp format—trailing whitespace will still
be added.

This commit updates the regular expression to handle such cases.

[1] https://github.com/lxc/lxc/commit/84cc3155af502db586f644f1092831155e45ccca

Signed-off-by: Richard Muzik <[email protected]>
8 weeks agoluci-app-frp: support QUIC protocol and Dashboard TLS
Roc Lai [Thu, 14 Aug 2025 07:31:59 +0000 (15:31 +0800)]
luci-app-frp: support QUIC protocol and Dashboard TLS

Add support for the QUIC protocol and Dashboard TLS in LuCI, new features in the latest version of frp.​ openwrt/packages#27191

Signed-off-by: Roc Lai <[email protected]>
8 weeks agoluci-mod-network: show stop button if interface start is pending
Florian Eckert [Tue, 7 Oct 2025 12:08:11 +0000 (14:08 +0200)]
luci-mod-network: show stop button if interface start is pending

Currently, it is not possible to stop an interface from establishing a
connection when it is flageed as pending in the netifd. This situation
occurs when netifd tells a proto to establish a connection, but the
proto is executing a blocken binary. This situation occurs in the proto
'modemmanager' when it wants to register but cannot. The timeout is set to
'120' seconds. During this time, the establishment cannot be stopped via
LuCI because the disable button can not be clicked.

To fix this, the pending flag is also evaluated and the disable button
is displayed in this state as well.

Signed-off-by: Florian Eckert <[email protected]>
8 weeks agoluci-base: add getPending ubus function call
Florian Eckert [Tue, 7 Oct 2025 08:43:14 +0000 (10:43 +0200)]
luci-base: add getPending ubus function call

Exporting the ubus “pending” information so that this information can be
used in LuCI.

Signed-off-by: Florian Eckert <[email protected]>
8 weeks agoluci-mod-network: clean up btn1 and btn2 disable
Florian Eckert [Tue, 7 Oct 2025 08:42:19 +0000 (10:42 +0200)]
luci-mod-network: clean up btn1 and btn2 disable

In the current source, it is difficult to see when the disable button
should be shown or not. This commit adjusts this and moves the handling
to an if else statement, so that it can be easily seen.

Signed-off-by: Florian Eckert <[email protected]>
8 weeks agoluci-mod-network: make state of interface more clear
Florian Eckert [Mon, 6 Oct 2025 11:05:10 +0000 (13:05 +0200)]
luci-mod-network: make state of interface more clear

In the current source, it is difficult to see when the disable button should
be shown or not. This commit adjusts this and moves the handling to an
if else statement, so that it can be easily seen.

Signed-off-by: Florian Eckert <[email protected]>
8 weeks agoMerge pull request #7999 from AndyChiang888/interfaces.js
Florian Eckert [Fri, 10 Oct 2025 08:55:40 +0000 (10:55 +0200)]
Merge pull request #7999 from AndyChiang888/interfaces.js

luci-mod-network: fix brackets in interfaces.js

8 weeks agoluci-mod-network: fix brackets in interfaces.js
Andy Chiang [Fri, 10 Oct 2025 08:21:42 +0000 (15:21 +0700)]
luci-mod-network: fix brackets in interfaces.js

fix brackets in interfaces.js for translate

Signed-off-by: Andy Chiang <[email protected]>
8 weeks agoTranslated using Weblate (Romanian)
Hosted Weblate [Fri, 10 Oct 2025 05:16:01 +0000 (07:16 +0200)]
Translated using Weblate (Romanian)

Currently translated at 24.2% (8 of 33 strings)

Translation: OpenWrt/LuCI/applications/openlist
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenlist/ro/

Translated using Weblate (Romanian)

Currently translated at 6.5% (7 of 107 strings)

Translation: OpenWrt/LuCI/applications/filemanager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfilemanager/ro/

Translated using Weblate (Romanian)

Currently translated at 4.7% (12 of 254 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/ro/

Translated using Weblate (Romanian)

Currently translated at 93.0% (80 of 86 strings)

Translation: OpenWrt/LuCI/applications/package-manager
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspackage-manager/ro/

Translated using Weblate (Romanian)

Currently translated at 6.1% (11 of 178 strings)

Translation: OpenWrt/LuCI/applications/lldpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationslldpd/ro/

Translated using Weblate (Romanian)

Currently translated at 7.8% (10 of 128 strings)

Translation: OpenWrt/LuCI/applications/usteer
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsusteer/ro/

Translated using Weblate (Romanian)

Currently translated at 8.6% (7 of 81 strings)

Translation: OpenWrt/LuCI/applications/email
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsemail/ro/

Translated using Weblate (Romanian)

Currently translated at 39.3% (13 of 33 strings)

Translation: OpenWrt/LuCI/applications/v2raya
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsv2raya/ro/

Translated using Weblate (Romanian)

Currently translated at 7.7% (6 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/ro/

Translated using Weblate (Romanian)

Currently translated at 4.2% (5 of 119 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/ro/

Translated using Weblate (Romanian)

Currently translated at 19.5% (9 of 46 strings)

Translation: OpenWrt/LuCI/applications/xfrpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxfrpc/ro/

Translated using Weblate (Romanian)

Currently translated at 15.1% (10 of 66 strings)

Translation: OpenWrt/LuCI/applications/sshtunnel
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssshtunnel/ro/

Translated using Weblate (Romanian)

Currently translated at 6.8% (6 of 88 strings)

Translation: OpenWrt/LuCI/applications/mosquitto
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmosquitto/ro/

Translated using Weblate (Romanian)

Currently translated at 33.3% (7 of 21 strings)

Translation: OpenWrt/LuCI/applications/irqbalance
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsirqbalance/ro/

Translated using Weblate (Romanian)

Currently translated at 6.5% (13 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/ro/

Translated using Weblate (Romanian)

Currently translated at 65.5% (116 of 177 strings)

Translation: OpenWrt/LuCI/applications/adblock-fast
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock-fast/ro/

Translated using Weblate (Romanian)

Currently translated at 82.1% (23 of 28 strings)

Translated using Weblate (Romanian)

Currently translated at 67.0% (110 of 164 strings)

Translation: OpenWrt/LuCI/applications/pbr
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationspbr/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Romanian)

Currently translated at 99.5% (210 of 211 strings)

Translation: OpenWrt/LuCI/applications/dockerman
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdockerman/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (62 of 62 strings)

Translation: OpenWrt/LuCI/applications/sqm
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssqm/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (66 of 66 strings)

Translation: OpenWrt/LuCI/applications/frps
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrps/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (89 of 89 strings)

Translation: OpenWrt/LuCI/applications/frpc
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfrpc/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (33 of 33 strings)

Translation: OpenWrt/LuCI/applications/vnstat2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsvnstat2/ro/

Translated using Weblate (Romanian)

Currently translated at 33.9% (55 of 162 strings)

Translation: OpenWrt/LuCI/applications/https-dns-proxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationshttps-dns-proxy/ro/

Translated using Weblate (Romanian)

Currently translated at 97.9% (187 of 191 strings)

Translation: OpenWrt/LuCI/applications/travelmate
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstravelmate/ro/

Translated using Weblate (Romanian)

Currently translated at 53.0% (78 of 147 strings)

Translation: OpenWrt/LuCI/applications/privoxy
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsprivoxy/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (171 of 171 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/ro/

Translated using Weblate (Romanian)

Currently translated at 60.6% (176 of 290 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (83 of 83 strings)

Translation: OpenWrt/LuCI/applications/attendedsysupgrade
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsattendedsysupgrade/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (38 of 38 strings)

Translation: OpenWrt/LuCI/applications/advanced-reboot
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadvanced-reboot/ro/

Translated using Weblate (Romanian)

Currently translated at 94.6% (194 of 205 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ro/

Translated using Weblate (Romanian)

Currently translated at 97.4% (192 of 197 strings)

Translation: OpenWrt/LuCI/applications/ddns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsddns/ro/

Translated using Weblate (Romanian)

Currently translated at 100.0% (113 of 113 strings)

Translated using Weblate (Romanian)

Currently translated at 96.3% (133 of 138 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Romanian)

Currently translated at 66.0% (35 of 53 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Romanian)

Currently translated at 98.9% (191 of 193 strings)

Translated using Weblate (Romanian)

Currently translated at 98.2% (279 of 284 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Romanian)

Currently translated at 27.5% (11 of 40 strings)

Translated using Weblate (Romanian)

Currently translated at 93.5% (377 of 403 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (82 of 82 strings)

Translated using Weblate (Romanian)

Currently translated at 90.0% (2376 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ro/

Translated using Weblate (Spanish)

Currently translated at 100.0% (153 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/es/

Translated using Weblate (Russian)

Currently translated at 100.0% (25 of 25 strings)

Translation: OpenWrt/LuCI/applications/ksmbd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsksmbd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (153 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pl/

Translated using Weblate (Spanish)

Currently translated at 100.0% (153 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/es/

Translated using Weblate (Polish)

Currently translated at 66.6% (102 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/pl/

Translated using Weblate (Spanish)

Currently translated at 44.4% (68 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/es/

Translated using Weblate (Polish)

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/pl/

Translated using Weblate (Portuguese)

Currently translated at 100.0% (403 of 403 strings)

Added translation using Weblate (Polish)

Translated using Weblate (Spanish)

Currently translated at 1.3% (2 of 153 strings)

Translation: OpenWrt/LuCI/applications/dawn
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsdawn/es/

Added translation using Weblate (Spanish)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (254 of 254 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/zh_Hans/

Translated using Weblate (Russian)

Currently translated at 100.0% (254 of 254 strings)

Translation: OpenWrt/LuCI/applications/keepalived
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationskeepalived/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (77 of 77 strings)

Translation: OpenWrt/LuCI/applications/xinetd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsxinetd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (119 of 119 strings)

Translation: OpenWrt/LuCI/applications/snmpd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssnmpd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (198 of 198 strings)

Translation: OpenWrt/LuCI/applications/smartdns
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssmartdns/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (44 of 44 strings)

Translation: OpenWrt/LuCI/applications/ser2net
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsser2net/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (25 of 25 strings)

Translation: OpenWrt/LuCI/applications/ksmbd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsksmbd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (60 of 60 strings)

Translation: OpenWrt/LuCI/applications/ttyd
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsttyd/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (290 of 290 strings)

Translation: OpenWrt/LuCI/applications/banip
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsbanip/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (205 of 205 strings)

Translation: OpenWrt/LuCI/applications/adblock
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsadblock/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (171 of 171 strings)

Translation: OpenWrt/LuCI/applications/mwan3
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsmwan3/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (168 of 168 strings)

Translation: OpenWrt/LuCI/applications/aria2
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsaria2/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (124 of 124 strings)

Translation: OpenWrt/LuCI/applications/nlbwmon
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnlbwmon/ru/

Translated using Weblate (Russian)

Currently translated at 100.0% (102 of 102 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (284 of 284 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (2639 of 2639 strings)

Translation: OpenWrt/LuCI/modules/luci-base
Translate-URL: https://hosted.weblate.org/projects/openwrt/luci/ru/

Co-authored-by: CRISTIAN ANDREI <[email protected]>
Co-authored-by: Hosted Weblate <[email protected]>
Co-authored-by: Matthaiks <[email protected]>
Co-authored-by: SnIPeRSnIPeR <[email protected]>
Co-authored-by: brodrigueznu <[email protected]>
Co-authored-by: ssantos <[email protected]>
Co-authored-by: t96mytell <[email protected]>
Signed-off-by: CRISTIAN ANDREI <[email protected]>
Signed-off-by: Matthaiks <[email protected]>
Signed-off-by: SnIPeRSnIPeR <[email protected]>
Signed-off-by: brodrigueznu <[email protected]>
Signed-off-by: t96mytell <[email protected]>
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationscommands/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsfirewall/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnatmap/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsnut/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsolsr/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsopenvpn/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsp910nd/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsradicale2/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssamba4/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationssplash/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/pt/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsstatistics/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstransmission/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationstransmission/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsuhttpd/ru/
Translate-URL: https://hosted.weblate.org/projects/openwrt/luciapplicationsupnp/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/ro/
Translate-URL: https://hosted.weblate.org/projects/openwrt/lucimodulesluci-mod-dashboard/ru/
Translation: OpenWrt/LuCI/applications/commands
Translation: OpenWrt/LuCI/applications/firewall
Translation: OpenWrt/LuCI/applications/natmap
Translation: OpenWrt/LuCI/applications/nut
Translation: OpenWrt/LuCI/applications/olsr
Translation: OpenWrt/LuCI/applications/openvpn
Translation: OpenWrt/LuCI/applications/p910nd
Translation: OpenWrt/LuCI/applications/radicale2
Translation: OpenWrt/LuCI/applications/samba4
Translation: OpenWrt/LuCI/applications/splash
Translation: OpenWrt/LuCI/applications/statistics
Translation: OpenWrt/LuCI/applications/transmission
Translation: OpenWrt/LuCI/applications/uhttpd
Translation: OpenWrt/LuCI/applications/upnp
Translation: OpenWrt/LuCI/modules/luci-mod-dashboard

8 weeks agoMerge pull request #7993 from stangri/master-luci-app-https-dns-proxy
Stan Grishin [Thu, 9 Oct 2025 18:26:44 +0000 (11:26 -0700)]
Merge pull request #7993 from stangri/master-luci-app-https-dns-proxy

luci-app-https-dns-proxy: update to 2025.10.07-r1

8 weeks agoMerge pull request #7989 from stangri/master-luci-app-adblock-fast
Stan Grishin [Wed, 8 Oct 2025 19:10:10 +0000 (12:10 -0700)]
Merge pull request #7989 from stangri/master-luci-app-adblock-fast

luci-app-adblock-fast: update to 1.2.0-r20