lock all burgs - optimization

This commit is contained in:
Azgaar 2022-01-01 19:06:51 +03:00
parent f3d3538ff5
commit 18acadfd80
2 changed files with 16 additions and 37 deletions

View file

@ -3287,7 +3287,7 @@
<button id="addNewBurg" data-tip="Add a new burg. Hold Shift to add multiple" class="icon-plus"></button>
<button id="burgsExport" data-tip="Save burgs-related data as a text file (.csv)" class="icon-download"></button>
<button id="burgNamesImport" data-tip="Rename burgs in bulk" class="icon-upload"></button>
<button id="burgsLockAll" data-tip="Lock / Unlock all burgs" class="icon-lock"></button>
<button id="burgsLockAll" data-tip="Lock or unlock all burgs" class="icon-lock"></button>
<button id="burgsRemoveAll" data-tip="Remove all unlocked burgs except for capitals. To remove a capital remove its state first" class="icon-trash"></button>
</div>
</div>

View file

@ -7,8 +7,8 @@ function overviewBurgs() {
const body = document.getElementById("burgsBody");
updateFilter();
updateLockAllIcon();
burgsOverviewAddLines();
setLockIcon();
$("#burgsOverview").dialog();
if (modules.overviewBurgs) return;
@ -34,8 +34,7 @@ function overviewBurgs() {
document.getElementById("burgsListToLoad").addEventListener("change", function () {
uploadFile(this, importBurgNames);
});
document.getElementById("burgsLockAll").addEventListener("click", setLockBurgs);
document.getElementById("burgsLockAll").addEventListener("click", setLockIcon);
document.getElementById("burgsLockAll").addEventListener("click", toggleLockAll);
document.getElementById("burgsRemoveAll").addEventListener("click", triggerAllBurgsRemove);
document.getElementById("burgsInvertLock").addEventListener("click", invertLock);
@ -566,40 +565,20 @@ function overviewBurgs() {
burgsOverviewAddLines();
}
function lockAllBurgs() {
pack.burgs.forEach(burg => {
burg.lock = true;
});
function toggleLockAll() {
const activeBurgs = pack.burgs.filter(b => b.i && !b.removed);
const allLocked = activeBurgs.every(burg => burg.lock);
pack.burgs.forEach(burg => {
burg.lock = !allLocked;
});
burgsOverviewAddLines();
document.getElementById("burgsLockAll").className = allLocked ? "icon-lock" : "icon-lock-open";
}
function unlockAllBurgs() {
pack.burgs.forEach(burg => {
burg.lock = false;
});
burgsOverviewAddLines();
}
function setLockBurgs() {
function updateLockAllIcon() {
const allLocked = pack.burgs.every(({lock, i, removed}) => lock || !i || removed);
if (allLocked) {
unlockAllBurgs();
} else {
lockAllBurgs();
}
setLockIcon();
}
function setLockIcon() {
const allLocked = pack.burgs.every(({lock, i, removed}) => lock || !i || removed);
if (allLocked) {
burgsLockAll.classList.remove("icon-lock");
burgsLockAll.classList.add("icon-lock-open");
} else {
burgsLockAll.classList.add("icon-lock");
burgsLockAll.classList.remove("icon-lock-open");
}
document.getElementById("burgsLockAll").className = allLocked ? "icon-lock-open" : "icon-lock";
}
}