Merge pull request #1735 from sumpfralle/olsr-jsoninfo-parser-handle-empty-result
[oweals/luci.git] / modules / luci-base / htdocs / luci-static / resources / cbi.js
index 5aa687b670831a0351a5e7fe4edbb397029cf6e0..4c3128bfd12272027c9f4deca9b6e7068086a18d 100644 (file)
@@ -298,8 +298,6 @@ function cbi_init() {
                                   node.getAttribute('data-type'));
        }
 
-       document.querySelectorAll('[data-browser]').forEach(cbi_browser_init);
-
        document.querySelectorAll('.cbi-tooltip:not(:empty)').forEach(function(s) {
                s.parentNode.classList.add('cbi-tooltip-container');
        });
@@ -316,41 +314,20 @@ function cbi_init() {
                i.addEventListener('mouseout', handler);
        });
 
+       var tasks = [];
+
        document.querySelectorAll('[data-ui-widget]').forEach(function(node) {
                var args = JSON.parse(node.getAttribute('data-ui-widget') || '[]'),
                    widget = new (Function.prototype.bind.apply(L.ui[args[0]], args)),
                    markup = widget.render();
 
-               Promise.resolve(markup).then(function(markup) {
+               tasks.push(Promise.resolve(markup).then(function(markup) {
                        markup.addEventListener('widget-change', cbi_d_update);
                        node.parentNode.replaceChild(markup, node);
-               });
+               }));
        });
 
-       cbi_d_update();
-}
-
-function cbi_filebrowser(id, defpath) {
-       var field   = L.dom.elem(id) ? id : document.getElementById(id);
-       var browser = window.open(
-               cbi_strings.path.browser + (field.value || defpath || '') + '?field=' + field.id,
-               "luci_filebrowser", "width=300,height=400,left=100,top=200,scrollbars=yes"
-       );
-
-       browser.focus();
-}
-
-function cbi_browser_init(field)
-{
-       field.parentNode.insertBefore(
-               E('img', {
-                       'src': L.resource('cbi/folder.gif'),
-                       'class': 'cbi-image-button',
-                       'click': function(ev) {
-                               cbi_filebrowser(field, field.getAttribute('data-browser'));
-                               ev.preventDefault();
-                       }
-               }), field.nextSibling);
+       Promise.all(tasks).then(cbi_d_update);
 }
 
 function cbi_validate_form(form, errmsg)