From: Jo-Philipp Wich Date: Tue, 28 Apr 2020 07:46:22 +0000 (+0200) Subject: luci-base: form.js: allow secondary configs to fail loading X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=17ffc84a2903c2354543cd0fb575a82e36e076fd;p=project%2Fluci.git luci-base: form.js: allow secondary configs to fail loading Ref: https://forum.openwrt.org/t/luci-rpc-error/61760 Signed-off-by: Jo-Philipp Wich --- diff --git a/modules/luci-base/htdocs/luci-static/resources/form.js b/modules/luci-base/htdocs/luci-static/resources/form.js index 9e0a80ad33..987640f000 100644 --- a/modules/luci-base/htdocs/luci-static/resources/form.js +++ b/modules/luci-base/htdocs/luci-static/resources/form.js @@ -531,12 +531,15 @@ var CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ { * an error. */ load: function() { - var doCheckACL = (!(this instanceof CBIJSONMap) && this.readonly == null); + var doCheckACL = (!(this instanceof CBIJSONMap) && this.readonly == null), + loadTasks = [ doCheckACL ? callSessionAccess('uci', this.config, 'write') : true ], + configs = this.parsechain || [ this.config ]; - return Promise.all([ - doCheckACL ? callSessionAccess('uci', this.config, 'write') : true, - this.data.load(this.parsechain || [ this.config ]) - ]).then(L.bind(function(res) { + loadTasks.push.apply(loadTasks, configs.map(L.bind(function(config, i) { + return i ? L.resolveDefault(this.data.load(config)) : this.data.load(config); + }, this))); + + return Promise.all(loadTasks).then(L.bind(function(res) { if (res[0] === false) this.readonly = true;