luci-base: cbi.js: save filled out but not added dynlist items on submit
authorJo-Philipp Wich <jo@mein.io>
Wed, 14 Aug 2019 20:28:36 +0000 (22:28 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 14 Aug 2019 20:28:36 +0000 (22:28 +0200)
Fixes: #2938
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/htdocs/luci-static/resources/cbi.js

index 67ddc6af365703a3937566bd925ee5599809cf27..e203c63fffbac113e64aa646585880a680c549f3 100644 (file)
@@ -1018,7 +1018,8 @@ function cbi_dynlist_init(dl, datatype, optional, choices)
                'class': 'cbi-input-text',
                'placeholder': dl.getAttribute('data-placeholder'),
                'data-type': datatype,
-               'data-optional': true
+               'data-optional': true,
+               'data-dynlist-add': true
        })));
 
        if (choices)
@@ -1045,6 +1046,11 @@ cbi_dynlist_init.prototype = CBIDynamicList;
 
 function cbi_validate_form(form, errmsg)
 {
+       var dynadd = form.querySelectorAll('input[data-dynlist-add="true"]');
+       for (var i = 0; i < dynadd.length; i++)
+               if (dynadd[i].value != '')
+                       dynadd[i].nextElementSibling.click();
+
        /* if triggered by a section removal or addition, don't validate */
        if (form.cbi_state == 'add-section' || form.cbi_state == 'del-section')
                return true;