diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2016-01-18 18:59:14 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2016-01-18 18:59:19 +0100 |
commit | 808c1b77f9008bc9f4a760ea0629b3fd4e49fbcb (patch) | |
tree | 2d85cb6e89133e5610d189d9a5bc5b4c7099be05 | |
parent | b50471787feb9c04b365ff239aee8f39eadc236b (diff) |
luci-base: cbi: fix reverse field order after dependency change
When fields got removed and readded due to unsatisfied dependencies, they
got inserted in reverse order into the dom.
Fix this issue by properly passing the element index.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
-rw-r--r-- | modules/luci-base/htdocs/luci-static/resources/cbi.js | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js index 81cc657784..8bf94a6c50 100644 --- a/modules/luci-base/htdocs/luci-static/resources/cbi.js +++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js @@ -506,10 +506,11 @@ function cbi_init() { var nodes = document.querySelectorAll('[data-depends]'); for (var i = 0, node; (node = nodes[i]) !== undefined; i++) { - var deps = JSON.parse(node.getAttribute('data-depends')); - if (deps.length > 0) { - for (var alt = 0; alt < deps.length; alt++) { - cbi_d_add(node, deps[alt], i); + var index = parseInt(node.getAttribute('data-index'), 10); + var depends = JSON.parse(node.getAttribute('data-depends')); + if (!isNaN(index) && depends.length > 0) { + for (var alt = 0; alt < depends.length; alt++) { + cbi_d_add(node, depends[alt], index); } } } |