luci-base: form.js: reset parent maps on returning from nested section modal

The nested section modal might have changed values also covered/displayed by
the parent map, so ensure to reload all parent maps in the current modal
view stack to ensure that no stale values are shown on return.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 0c81e25faa)
This commit is contained in:
Jo-Philipp Wich 2022-05-16 11:49:28 +02:00
parent b556cdf93e
commit 9780bc0152

View file

@ -2995,10 +2995,20 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
/** @private */
handleModalCancel: function(modalMap, ev) {
var prevNode = this.getPreviousModalMap();
var prevNode = this.getPreviousModalMap(),
resetTasks = Promise.resolve();
if (prevNode) {
var heading = prevNode.parentNode.querySelector('h4');
var heading = prevNode.parentNode.querySelector('h4'),
prevMap = dom.findClassInstance(prevNode);
while (prevMap) {
resetTasks = resetTasks
.then(L.bind(prevMap.load, prevMap))
.then(L.bind(prevMap.reset, prevMap));
prevMap = prevMap.parent;
}
prevNode.classList.add('flash');
prevNode.classList.remove('hidden');
@ -3015,7 +3025,7 @@ var CBITableSection = CBITypedSection.extend(/** @lends LuCI.form.TableSection.p
ui.hideModal();
}
return Promise.resolve();
return resetTasks;
},
/** @private */