From 41e8360e253352fbd7efdf504a8d01050eb7d401 Mon Sep 17 00:00:00 2001 From: Maxim Prokhorov Date: Tue, 2 Jul 2024 18:41:59 +0300 Subject: [PATCH] webui: pending changes canceling out --- code/html/src/settings.mjs | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/code/html/src/settings.mjs b/code/html/src/settings.mjs index c35b622f..615986a4 100644 --- a/code/html/src/settings.mjs +++ b/code/html/src/settings.mjs @@ -112,28 +112,37 @@ function getGroupPending(elem) { /** * @param {HTMLElement} elem * @param {number} index + * @param {string} lhs + * @param {string} rhs */ -function addGroupPending(elem, index) { +function modifyGroupPending(elem, index, lhs, rhs) { const pending = getGroupPending(elem); - pending.push(`set:${index}`); + + const removed = pending.indexOf(`${lhs}:${index}`); + if (removed >= 0) { + pending.splice(removed, 1); + } else { + pending.push(`${rhs}:${index}`); + } + elem.dataset["settingsGroupPending"] = pending.join(","); } +/** + * @param {HTMLElement} elem + * @param {number} index + */ +function addGroupPending(elem, index) { + modifyGroupPending(elem, index, "del", "set"); +} + + /** * @param {HTMLElement} elem * @param {number} index */ function popGroupPending(elem, index) { - const pending = getGroupPending(elem); - - const added = pending.indexOf(`set:${index}`); - if (added >= 0) { - pending.splice(added, 1); - } else { - pending.push(`del:${index}`); - } - - elem.dataset["settingsGroupPending"] = pending.join(","); + modifyGroupPending(elem, index, "set", "del"); } /**