luci-base: ui.js: resolve parent ul early in UIDropdown.toggleItem()
authorJo-Philipp Wich <jo@mein.io>
Fri, 19 Feb 2021 09:39:00 +0000 (10:39 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 19 Feb 2021 09:41:00 +0000 (10:41 +0100)
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>
modules/luci-base/htdocs/luci-static/resources/ui.js

index 3ada9e375a61a480b35bf9f88ab920f5e54179b1..c8ebef66911c646bd119c71f3deb8a15c155aa0f 100644 (file)
@@ -1360,6 +1360,8 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ {
 
        /** @private */
        toggleItem: function(sb, li, force_state) {
+               var ul = li.parentNode;
+
                if (li.hasAttribute('unselectable'))
                        return;
 
@@ -1436,7 +1438,7 @@ var UIDropdown = UIElement.extend(/** @lends LuCI.ui.Dropdown.prototype */ {
                        this.closeDropdown(sb, true);
                }
 
-               this.saveValues(sb, li.parentNode);
+               this.saveValues(sb, ul);
        },
 
        /** @private */