|
@ -3,7 +3,7 @@ |
|
|
let activeModal = null; |
|
|
let activeModal = null; |
|
|
let activeLink = null; |
|
|
let activeLink = null; |
|
|
let bottomHeightThreshold, sections; |
|
|
let bottomHeightThreshold, sections; |
|
|
let settings; |
|
|
let settingsModal; |
|
|
|
|
|
|
|
|
function closeModal(modal) { |
|
|
function closeModal(modal) { |
|
|
activeModal = null; |
|
|
activeModal = null; |
|
@ -19,10 +19,29 @@ function openModal(modal) { |
|
|
modal.style.removeProperty('display'); |
|
|
modal.style.removeProperty('display'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function updateSetting(element) { |
|
|
|
|
|
localStorage.setItem(element.name, element.checked); |
|
|
|
|
|
if (element.name in settings) { |
|
|
|
|
|
settings[element.name](element.checked); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function getBodyClassToggle(className) { |
|
|
|
|
|
function toggleBodyClass(add) { |
|
|
|
|
|
document.body.classList.toggle(className, add); |
|
|
|
|
|
} |
|
|
|
|
|
return toggleBodyClass; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const settings = { |
|
|
|
|
|
useSansFont: getBodyClassToggle('sans') |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
|
document.addEventListener('DOMContentLoaded', () => { |
|
|
|
|
|
|
|
|
bottomHeightThreshold = document.documentElement.scrollHeight - 30; |
|
|
bottomHeightThreshold = document.documentElement.scrollHeight - 30; |
|
|
sections = document.querySelectorAll('div.section'); |
|
|
sections = document.querySelectorAll('div.section'); |
|
|
settings = document.querySelector('div#settings.modal') |
|
|
settingsModal = document.querySelector('div#settings.modal') |
|
|
|
|
|
|
|
|
const tables = document.querySelectorAll('.py-attribute-table[data-move-to-id]'); |
|
|
const tables = document.querySelectorAll('.py-attribute-table[data-move-to-id]'); |
|
|
tables.forEach(table => { |
|
|
tables.forEach(table => { |
|
@ -31,6 +50,21 @@ document.addEventListener('DOMContentLoaded', () => { |
|
|
// insert ourselves after the element
|
|
|
// insert ourselves after the element
|
|
|
parent.insertBefore(table, element.nextSibling); |
|
|
parent.insertBefore(table, element.nextSibling); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
Object.entries(settings).forEach(([name, setter]) => { |
|
|
|
|
|
let value = JSON.parse(localStorage.getItem(name)); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
setter(value); |
|
|
|
|
|
let element = document.querySelector(`input[name=${name}]`); |
|
|
|
|
|
if (element) { |
|
|
|
|
|
element.checked = value === true; |
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error(`Failed to apply setting "${name}" With value:`, value); |
|
|
|
|
|
console.error(error); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
window.addEventListener('scroll', () => { |
|
|
window.addEventListener('scroll', () => { |
|
|