@ -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' , ( ) => {