luci-base: correctness fixes: partial revert

This reverts problematic parts of commit
a818ac89bb.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
Paul Donald
2026-05-28 01:32:16 +03:00
parent 6a86077789
commit f699752316
2 changed files with 13 additions and 30 deletions
@@ -752,18 +752,15 @@ const CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ {
* @param {Event} ev
* @param {number} n
*/
checkDepends(ev, n, cache) {
if (cache == null)
cache = Object.create(null);
checkDepends(ev, n) {
let changed = false;
for (let i = 0, s = this.children[0]; (s = this.children[i]) != null; i++)
if (s.checkDepends(ev, n, cache))
if (s.checkDepends(ev, n))
changed = true;
if (changed && (n ?? 0) < 10)
this.checkDepends(ev, (n ?? 0) + 1, cache);
this.checkDepends(ev, (n ?? 10) + 1);
ui.tabs.updateTabs(ev, this.root);
},
@@ -775,12 +772,9 @@ const CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ {
* @param {string} section_id
* @returns {boolean}
*/
isDependencySatisfied(depends, config_name, section_id, cache) {
isDependencySatisfied(depends, config_name, section_id) {
let def = false;
if (cache == null)
cache = Object.create(null);
if (!Array.isArray(depends) || !depends.length)
return true;
@@ -797,18 +791,9 @@ const CBIMap = CBIAbstractElement.extend(/** @lends LuCI.form.Map.prototype */ {
def = true;
istat = false;
}
else {
const key = `${config_name}::${section_id}::${dep}`;
let val;
if (key in cache) {
val = cache[key];
}
else {
const res = this.lookupOption(dep, section_id, config_name);
val = (res && res[0].isActive(res[1])) ? res[0].formvalue(res[1]) : null;
cache[key] = val;
}
const val = (res && res[0].isActive(res[1])) ? res[0].formvalue(res[1]) : null;
const equal = contains
? isContained(val, depends[i][dep])
@@ -1797,9 +1782,9 @@ const CBIAbstractValue = CBIAbstractElement.extend(/** @lends LuCI.form.Abstract
* @param {string} section_id
* @returns {boolean}
*/
checkDepends(section_id, cache) {
checkDepends(section_id) {
const config_name = this.uciconfig ?? this.section.uciconfig ?? this.map.config;
const active = this.map.isDependencySatisfied(this.deps, config_name, section_id, cache);
const active = this.map.isDependencySatisfied(this.deps, config_name, section_id);
if (active)
this.updateDefaultValue(section_id);
@@ -5173,7 +5158,6 @@ const CBIFlagValue = CBIValue.extend(/** @lends LuCI.form.Flag.prototype */ {
else if (!this.retain) {
return Promise.resolve(this.remove(section_id));
}
return Promise.resolve();
},
});
@@ -6111,9 +6095,9 @@ const CBISectionValue = CBIValue.extend(/** @lends LuCI.form.SectionValue.protot
* @param {string} section_id
* @returns {null}
*/
checkDepends(section_id, cache) {
this.subsection.checkDepends(section_id, cache);
return CBIValue.prototype.checkDepends.apply(this, [ section_id, cache ]);
checkDepends(section_id) {
this.subsection.checkDepends(section_id);
return CBIValue.prototype.checkDepends.apply(this, [ section_id ]);
},
/**
@@ -571,9 +571,8 @@
}
requestQueue.length = 0;
const requestBaseURL = Request.expandURL(classes.rpc.getBaseURL());
Request.request(requestBaseURL, reqopt).then(reply => {
Request.request(rpcBaseURL, reqopt).then(reply => {
let json = null, req = null;
try { json = reply.json() }
@@ -2835,7 +2834,7 @@
* @returns {string}
* Return the joined URL path.
*/
path(prefix = '', ...parts) {
path(prefix = '', parts) {
const url = [ prefix ];
for (let i = 0; i < parts.length; i++){