479 Commits

Author SHA1 Message Date
Jo-Philipp Wich
d79b81b852 luci-base: luci.js: fix undefined variable access in Request.request()
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit de4c4f7fd445e7a59691e50edead472900270e59)
2022-02-16 00:37:54 +01:00
Jo-Philipp Wich
4aa1c79138 luci-base: widget.js: use firewall.getZoneColorStyle() in zone widgets
Use the new `firewall.getZoneColorStyle()` helper to apply background
color styles.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit a812b26cb8cde56c8083349f665d762ae6a1826a)
2022-02-16 00:37:33 +01:00
Jo-Philipp Wich
a6bad6d9f8 luci-base: firewall.js: add getZoneColorStyle() helper
The getZoneColorStyle() function will produce CSS style properties that
describe the color value of the zone. The color declaration is divided
into a CSS variable called `--zone-color-rgb` which holds the RGB value
of the color and a `background-color` property assigning these values
as background property.

This allows themes to override the color with derived values, e.g. by
applying an alpha channel.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d775279dbd0da284af7f74b31b5d3b0eddcf80bc)
2022-02-16 00:37:24 +01:00
Jo-Philipp Wich
5a092b3ad2 luci-base: add legacy directory, file and device validator JS stubs
Fixes: #5466
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit ad360ec00a3667d530fa1a911ac19515b132d588)
2022-02-16 00:36:34 +01:00
Jo-Philipp Wich
b3cd473517 luci.js: remove unsafe fallback code from dom.parse()
Do not fallback to .innerHTML if DOMParser() failed for whatever reason.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 63d9bcb6825fac92fd7dfa4ba858c8d5aafa23e8)
2021-12-23 17:10:18 +01:00
Jo-Philipp Wich
db88156dff luci-base: form.js: do not execute embedded script code in stripTags()
Instead of relying on .innerHTML which executes embedded script code to
parse a given HTML fragment, use dom.parse() which utilizies DOMParser()
internally in order to extract textContent in a safe manner.

Fixes: FS#4199
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=4199
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 993151504e8e810c083d3257555bdcdc2f00673a)
2021-12-23 17:10:18 +01:00
Jo-Philipp Wich
7f37a5840b luci-base: cbi.js: properly handle falsy values in cbi_update_table()
Fixes: #5544
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e982c05671229b3d13622b38c9536812e8c5f05c)
2021-11-23 19:12:41 +01:00
Jo-Philipp Wich
e1ccb6621c luci-base: network.js: ignore wireless ifname patterns on retrieving devices
Only treat the given identifier as Linux netdev name if we can find a
corresponding entry in the device info cache and do not consider strings
starting with "wlan", "ath" or "wl" to be existing devices.

This fixes incorrectly adding wireless sections as ifnames to network
interfaces when the wifi-iface section name begins with one of the
`iface_patterns_wireless` patterns.

Fixes: #5069
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d4092b15ce92cda2d7711b57b2251ebebef32b5c)
2021-11-10 11:57:59 +01:00
Jo-Philipp Wich
47026f54ca luci-base: tools.widgets: adjust zone selector dropdown markup
No functional changes but required for styling rules.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7fba52de91afc60a49345a75b805ff73f18f6f26)
2021-11-08 20:45:34 +01:00
Jo-Philipp Wich
13df80d429 luci-base: remove further related section types on deleting network
When removing a `config interface` section in `/etc/config/network`, drop
related `rule` and `rule6` sections too, as well as related `dhcp` sections
in `/etc/config/dhcp`.

Ref: https://forum.openwrt.org/t/grooming-etc-config/109764/7
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 63034c36073bedf87db18d05d3fe8cca016c6490)
2021-10-22 20:37:34 +02:00
Jo-Philipp Wich
32fc8941b8 luci-base: cbi.js: use IEC 80000-13 units to format base 2 byte values
Fixes: #5354
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0a31efc858b02cd5aa9f38c1b5b40a9a14a61c1a)
2021-10-22 20:36:47 +02:00
Jo-Philipp Wich
cfd0bdd206 luci-base: form.js: add drag-drop sorting support for mobile
Fixes: #5416
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit df75163e6842efc553ad8dcaedf06ea64570ed95)
2021-10-12 23:04:25 +02:00
Jo-Philipp Wich
5806ff0531 luci-base: fix off-by-one in cbi_update_table()
Fixes: #5189
Fixes: f919635310 ("luci-base: batch DOM updates to prevent slowdown")
Ref: f919635310 (commitcomment-53495580)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 7d9ab8d4a741cbc97e9553982e9e352b21ddf5f3)
2021-10-12 23:01:45 +02:00
Olli Asikainen
d7be4983cf luci-base: batch DOM updates to prevent slowdown
Signed-off-by: Olli Asikainen <olli.asikainen@gmail.com>
(cherry picked from commit f919635310286b3b905aedb716d707da1ea2c811)
2021-10-12 23:01:35 +02:00
Vladislav Grigoryev
422c1752a6 luci-base: support loopback by widgets.NetworkSelect
Support the "loopback" interface by "widgets.NetworkSelect".
Enable the "loopback" option to include this interface.
Can be used to configure interface binding for services.

Signed-off-by: Vladislav Grigoryev <vg.aetera@gmail.com>
(cherry picked from commit 376af36975579008e3176a860ae032759d27dcbb)
2021-08-19 09:17:21 +02:00
Florian Eckert
e52e1de53a luci-base: do not add validation for named section if readonly is set
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 1a2b7fef6cc181f7f0ff0e1133ad4d8ab03e279c)
2021-07-07 17:18:19 +02:00
Helge Mader
56f453ad13 luci-base: prevent empty field for adding new named section in JavaScript
Suggested-by: Helge Mader <ma@dev.tdt.de>
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 87215e3d1bd2406c4a5ae5088e176fb4aefbe546)
2021-07-07 17:18:16 +02:00
Florian Eckert
215a3141f0 luci-base: change css class btn to cbi-button
The css class btn is only a valid input element on lua rendered pages.
Use instead cbi-button for javascript rendered pages.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 80262bb9a7e63eeee0e1fa5f290b27a569a644bf)
2021-07-07 17:18:13 +02:00
Florian Eckert
c6b41bdecb luci-base: use button tag instead of input tag on named section add
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 97e673b72cc96f5f866df7e990a51fa65bff5b5f)
2021-07-07 17:18:10 +02:00
DeYu Liu
720a57647b luci-base: Fix time display error
Signed-off-by: DeYu Liu <vito_sam@outlook.com>
(cherry picked from commit 0e4b4c5b42f9d8b93a4936c4b2d63f9a90c5a61b)
2021-07-07 17:17:09 +02:00
Jo-Philipp Wich
1fed9af22c luci-base: validation: disallow mutlicast MACs by default
Extend the MAC address validator to disallow multicast MAC addresses and
add a new optional validator option to require multicast MACs instead of
unicast ones.

Fixes: #5166
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 00e41c3c4977f75e6ca43429dd4c8c2f5cb22419)
2021-07-07 17:17:02 +02:00
Jo-Philipp Wich
ba57ec5fd5 luci-base: network.js: add link status information accessors
Fixes: #5121
Fixes: 8c71b1d01e ("luci-mod-network: add port status to bridge vlan filter matrix")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 1bcb12570c3b6f26009801ee6006b2ab305d088f)
2021-06-12 20:01:58 +02:00
Jo-Philipp Wich
0df73ee571 luci-base: ui.js: determine dropdown position relative to overflow parent
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e3bf521edbd0c6f59aba9aa9a89a9d96e1da3fd2)
2021-06-12 20:01:57 +02:00
David Bauer
d721bb6875 luci-base: add 11ax HW / HT modes
Add the known values returned for 802.11ax HW as well as HT modes to the
respective method descriptions.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 4b17f8baa3574527dc6ab8914fd322a08cb9784c)
2021-06-12 20:01:57 +02:00
David Bauer
1af323e450 luci-mod-network: add 802.11ax HE support
This commit adds the ability to configure HE-modes for radios
(HE20 / HE40 / HE80 / HE160) as well as HE rate information in the
assiciation view.

Tested-on: Ubiquiti UniFi 6 Lite / LR

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f35e877dc65c727a6ce7f7972a5be4d15921827b)
2021-06-12 20:01:57 +02:00
Jo-Philipp Wich
49e25bd03e luci-base: network.js: sorting fixes
Ensure that sort callbacks consistently return [-N .. 0 .. +N] values
instead of just true/false.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit e35041e0a8edcf039d62a74cbc5e0f4043d04029)
2021-06-12 19:23:37 +02:00
Niels Widger
7d7df070c3 treewide: Update JS using luci-rpc getHostHints
Update frontend JS code which uses luci-rpc getHostHints to support the new
response format which removes the `ipv4` and `ipv6` host hint string fields
and replaces them with `ipaddrs` and `ip6addrs` weighted string list fields.

Signed-off-by: Niels Widger <niels@qacafe.com>
[rework code to be forwards/backwards compatible, fix some Network.Hosts
 methods, fix IP choice ordering, change commit subject, rewrap commit
 message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit c7b7b42cd3840cfd67f412191578a8659eb63c87)
2021-06-12 19:23:28 +02:00
Jo-Philipp Wich
9bbf5d4002 luci-base: form.js: consider aliased options in AbstractValue.remove()
If different options point to the same underlying uci option, we must only
remove the uci value if none of the other alias options is active in order
to prevent inactive options (due to unsatisfied depends) removing the uci
value of active once on save.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f3f74bd0fe66b94a99a8d944b63dcd6bdd1b93c6)
2021-06-12 19:23:10 +02:00
Jo-Philipp Wich
cb5cf7c08f luci-base: uci.js: merge changes when retrieving entire sections
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit ba4e214160619e27b88a3929c76a1a01c9c1b1e2)
2021-06-12 19:21:12 +02:00
Nicholas Smith
d2a9284836 luci-base: add new member 'hidden' to DummyValue
Signed-off-by: Nicholas Smith <nicholas@nbembedded.com>
(cherry picked from commit 936dde742256c6f81c335e5847524e2771913775)
2021-06-12 19:19:09 +02:00
Jo-Philipp Wich
8e14a086e9 luci-base: fix network data type validation
Fixes: #5085
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit dece9b063c16790df731a08f8e73978c51b6c90d)
2021-05-31 11:40:05 +02:00
Rafał Miłecki
14511e5392 treewide: drop MAC and MTU from interfaces (protocols)
Those are L2 options that are not part of interfaces (L3), should not be
set there and don't work. Setting MAC and MTU should be done at device
layer (config device) and is supported for basic types already.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 79947af064122438c803f3b7bc580ede093a26e4)
2021-05-28 15:44:44 +02:00
Jo-Philipp Wich
9eee69a62e treewide: remove rendundant proto handler options
The introduction of network device configuration support also implemented
all common, protocol-independent interface options directly in the
interface config view, so drop the redundant option definitions.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 171ef77e8985ffd90eb66b8a0a3cd74beb37ccdc)
2021-05-28 15:44:44 +02:00
Rafał Miłecki
c7fd1bfb12 treewide: use "device" option in UCI "interface" sections
netifd has been recently patched to use "device" option instead of
"ifname" as more clear & accurate.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 74be304e541f5c03dacbdb05c543dfa6f79205a6)
2021-05-27 12:19:08 +02:00
Jo-Philipp Wich
470848fac9 luci-base: network.js: recognize DSA ports and bridge VLANs
Use the newly introduced devtype attribute for more robust network device
type detection. This also allows us to easily recognize DSA ports.

Furthermore, synthesize VLAN devices declared by uci bridge-vlan sections,
similar to how it is done for legacy swconfig switch_vlan ones.

Finally implement a new Network.Device.getParent() method to use the newly
available "parent" attribute to resolve the base device of DSA ports or
VLAN devices.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit d1bf56d7f178f1b7582d7b3600ee70e65128ccfa)
2021-05-27 12:19:05 +02:00
Sven Roederer
1a59584167 luci-base: change button-text from Dismiss to Close in UCI changes overview
Change the left button of the UCI Apply-changes overview to the more correct
function close. This also avoids confusion between Dismiss and Revert, which
translate to the same in german.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
(cherry picked from commit b56912d9fcf6acb0ba3008de3df15188318376f2)
2021-05-04 09:16:12 +02:00
Jo-Philipp Wich
06dd6b521d luci-base: form.js: fix AbstractValue.textvalue() for uci list options
Serialize the uci list value into a space separated string before passing
it to String.format() for HTML escaping. Without that change, empty strings
were returned whenever the underlying uci get operation yieled an array.

Fixes: #4993
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 5c792aefc744d1417fc9e24cfb92cd61cf8a651f)
2021-04-16 17:32:47 +02:00
Jo-Philipp Wich
adcc2ef446 luci-base: ui.js: fix UICheckbox widget operation when tooltips are set
When a tooltip is rendered for a checkbox widget, an additional node is
placed after the checkbox label element, breaking DOM selectors in
bind(), isChecked(), setValue().

Apparently the functionality was never actually tested.

Fixes: #4938
Fixes: e951236e3 ("luci-base: add tooltip handling")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 95b5c6cd6464d11d6baa22bcf2c9469847353813)
2021-03-29 11:28:15 +02:00
Jo-Philipp Wich
bd39e6abaf luci-base: validation.js: optionally support negative prefixes
Support negative prefix length in the `cidr`, `cidr4`, `cidr6`, `ipmask`,
`ipmask4` and `ipmask6` data types when an optional truish flag is passed
to the datatype name.

Ref: #4812
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit cd06e708d8d8037486b77dab3389ca91a88f2dd0)
2021-03-01 15:19:06 +01:00
Jo-Philipp Wich
3d31dfc2b4 luci-base: network.js: sort interface statuses by metric, then name
Fixes: #4693
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0ee422b4c0e266f0ece70fa60e0ebfa84851992e)
2021-03-01 10:43:43 +01:00
Jo-Philipp Wich
6870d9e908 luci-base: firewall.js: manage zomne networks as list
Fixes: #4827
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 49ecaf60902be2e43ccec3c61bc6b7d0b41da251)
2021-03-01 08:55:46 +01:00
Jo-Philipp Wich
af4c851d35 luci-base: ui.js: resolve parent ul early in UIDropdown.toggleItem()
The parent node of the current li might be null after collapsing the
dropdown, so resolve the parent ul early to avoid passing null to
subsequent calls.

Fixes clearing custom input values in DynamicList dropdowns.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit b8d2bcd432ab23a883de1dd4fbce29f9751a6e84)
2021-03-01 08:55:46 +01:00
Jo-Philipp Wich
3c166c25de luci-base: luci.js: fix sortedKeys() ordering
Chrome does not properly sort arrays when the sort function returns boolean
results, in contrast to Firefox which does.

Fix the issue by returning a numerical result instead.

Fixes: #4792
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2021-02-10 00:07:32 +01:00
Giovanni Giacobbi
d3280e6f5d treewide: minor fixes to typos, whitespace, and indentation
Signed-off-by: Giovanni Giacobbi <giovanni@giacobbi.net>
2021-01-20 12:36:13 +02:00
Giovanni Giacobbi
763158600a
luci-base: luci.js: fix LuCI.request.poll.add() exception handling
The try/catch is meant for the `res.json()` call and should apply to that. As it was before, an exception inside the poll callback would cause the callback to be reinvoked without the JSON parameter, which is an odd behaviour. Moreover, it makes it hard to debug because it is completely hidden from the browser console. We now differentiate between exceptions thrown due to bad JSON in `responseText` from exceptions generated inside the callback itself, which are let through for browser console logging.

Signed-off-by: Giovanni Giacobbi <giovanni@giacobbi.net>
2021-01-19 22:46:25 +01:00
Florian Eckert
df2a135a08 luci-base: make tooltip icon string configurable
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-01-13 12:29:02 +01:00
Florian Eckert
e951236e36 luci-base: add tooltip handling
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2021-01-13 11:59:02 +01:00
Hannu Nyman
c49d33f6cb
Merge pull request #4598 from Ansuel/wifi_chan
luci-mod-status: add new channel analysis page
2021-01-07 19:02:57 +02:00
Jo-Philipp Wich
03c77dafe3 treewide: transition div tables to actual table markup
Modern browsers allow decomposing table markup equally well as nested div
constructs, therefor migrate our <div> table markup to actual <table> tags
but keep the old table/tr/th/td CSS classes for now to allow for a smooth
theme transition.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-11-27 21:36:40 +01:00
Ansuel Smith
84ba852993
luci-base: delay cbi-tab-active event on tab init
Delay the cbi-tab-active custom event so any eventListner attached to the tab doesn't miss the first event.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2020-11-24 02:36:50 +01:00