Update samy.js
This commit is contained in:
76
samy.js
76
samy.js
@@ -94,7 +94,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
});
|
||||
|
||||
// =======================================================================
|
||||
// Onboarding: Select-all left/right columns
|
||||
// Onboarding: Select-all left columns
|
||||
// =======================================================================
|
||||
function toggleColumn(col) {
|
||||
const master = document.getElementById(
|
||||
@@ -129,7 +129,7 @@ function updateSelectAll(col) {
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
["left", "right"].forEach((col) => {
|
||||
["left"].forEach((col) => {
|
||||
document
|
||||
.querySelectorAll(`#onboardTab input[type=checkbox][data-column="${col}"]`)
|
||||
.forEach((cb) =>
|
||||
@@ -139,6 +139,78 @@ document.addEventListener("DOMContentLoaded", () => {
|
||||
});
|
||||
});
|
||||
|
||||
// =======================================================================
|
||||
// Onboarding: Right side split Select All (apps + tweaks)
|
||||
// =======================================================================
|
||||
|
||||
// apps = only checkboxes marked data-group="apps"
|
||||
// tweaks = everything in right column NOT marked as apps
|
||||
const ONBOARD_RIGHT_GROUPS = {
|
||||
apps: {
|
||||
masterId: "selectAllAppsCheckbox",
|
||||
selector:
|
||||
'#onboardTab input[type=checkbox][data-column="right"][data-group="apps"]',
|
||||
},
|
||||
tweaks: {
|
||||
masterId: "selectAllTweaksCheckbox",
|
||||
selector:
|
||||
'#onboardTab input[type=checkbox][data-column="right"]:not([data-group="apps"])',
|
||||
},
|
||||
};
|
||||
|
||||
function toggleOnboardGroup(groupKey) {
|
||||
const cfg = ONBOARD_RIGHT_GROUPS[groupKey];
|
||||
if (!cfg) return;
|
||||
|
||||
const master = document.getElementById(cfg.masterId);
|
||||
if (!master) return;
|
||||
|
||||
const children = document.querySelectorAll(cfg.selector);
|
||||
|
||||
children.forEach((cb) => {
|
||||
cb.checked = master.checked;
|
||||
});
|
||||
|
||||
// fire change handlers so renameComputer / suboptions update properly
|
||||
setTimeout(() => {
|
||||
children.forEach((cb) => cb.dispatchEvent(new Event("change")));
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function updateOnboardGroupSelectAll(groupKey) {
|
||||
const cfg = ONBOARD_RIGHT_GROUPS[groupKey];
|
||||
if (!cfg) return;
|
||||
|
||||
const master = document.getElementById(cfg.masterId);
|
||||
if (!master) return;
|
||||
|
||||
const children = document.querySelectorAll(cfg.selector);
|
||||
|
||||
if (!children.length) {
|
||||
master.checked = false;
|
||||
return;
|
||||
}
|
||||
|
||||
master.checked = Array.from(children).every((cb) => cb.checked);
|
||||
}
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
Object.keys(ONBOARD_RIGHT_GROUPS).forEach((groupKey) => {
|
||||
const cfg = ONBOARD_RIGHT_GROUPS[groupKey];
|
||||
|
||||
// When any child checkbox changes, refresh that group's Select All
|
||||
document.querySelectorAll(cfg.selector).forEach((cb) => {
|
||||
cb.addEventListener("change", () =>
|
||||
updateOnboardGroupSelectAll(groupKey)
|
||||
);
|
||||
});
|
||||
|
||||
// Initial set
|
||||
updateOnboardGroupSelectAll(groupKey);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// =======================================================================
|
||||
// Off-boarding Select All
|
||||
// =======================================================================
|
||||
|
||||
Reference in New Issue
Block a user