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");
}
/**