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 <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2020-04-28 09:46:22 +02:00
parent a8d85ed71a
commit 17ffc84a29

View file

@ -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;