luci-base: form.js: fix handling of array sections in JSONMap forms
authorJo-Philipp Wich <jo@mein.io>
Sun, 14 Jun 2020 14:41:02 +0000 (16:41 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sun, 14 Jun 2020 14:42:17 +0000 (16:42 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 682f628ea611d8d12a2a4b5925851f99c5a4bd20)

modules/luci-base/htdocs/luci-static/resources/form.js

index c1331fb34593e220a4efda01cebc27f1b81ca485..b92ef235a4638c6febb58afa162fd209f805d8d1 100644 (file)
@@ -19,17 +19,7 @@ var CBIJSONConfig = baseclass.extend({
                        if (!data.hasOwnProperty(sectiontype))
                                continue;
 
-                       if (L.isObject(data[sectiontype])) {
-                               this.data[sectiontype] = Object.assign(data[sectiontype], {
-                                       '.anonymous': false,
-                                       '.name': sectiontype,
-                                       '.type': sectiontype
-                               });
-
-                               section_ids.push(sectiontype);
-                               num_sections++;
-                       }
-                       else if (Array.isArray(data[sectiontype])) {
+                       if (Array.isArray(data[sectiontype])) {
                                for (var i = 0, index = 0; i < data[sectiontype].length; i++) {
                                        var item = data[sectiontype][i],
                                            anonymous, name;
@@ -57,6 +47,16 @@ var CBIJSONConfig = baseclass.extend({
                                        });
                                }
                        }
+                       else if (L.isObject(data[sectiontype])) {
+                               this.data[sectiontype] = Object.assign(data[sectiontype], {
+                                       '.anonymous': false,
+                                       '.name': sectiontype,
+                                       '.type': sectiontype
+                               });
+
+                               section_ids.push(sectiontype);
+                               num_sections++;
+                       }
                }
 
                section_ids.sort(L.bind(function(a, b) {