This commit is contained in:
Matt Walsh
2022-12-07 10:53:18 -06:00
parent 8e6fd04b3a
commit 49cd15a688
16 changed files with 1406 additions and 478 deletions

View File

@@ -188,7 +188,6 @@ class CurrentWeather extends WeatherDisplay {
return condition;
}
}
const display = new CurrentWeather(0, 'current-weather');
registerDisplay(display);

View File

@@ -98,5 +98,6 @@ const drawCondition = (text) => {
elem.innerHTML = text;
});
};
start();
document.addEventListener('DOMContentLoaded', () => {
start();
});

View File

@@ -32,6 +32,7 @@ const init = async () => {
document.getElementById('chkAutoRefresh').checked = false;
}
document.getElementById('chkAutoRefresh').addEventListener('change', autoRefreshChange);
generateCheckboxes();
};
const message = (data) => {
@@ -271,11 +272,18 @@ const resetStatuses = () => {
const registerDisplay = (display) => {
displays[display.navId] = display;
// generate checkboxes
generateCheckboxes();
};
const generateCheckboxes = () => {
const availableDisplays = document.getElementById('enabledDisplays');
if (!availableDisplays) return;
// generate checkboxes
const checkboxes = displays.map((d) => d.generateCheckbox()).filter((d) => d);
// write to page
const availableDisplays = document.getElementById('enabledDisplays');
availableDisplays.innerHTML = '';
availableDisplays.append(...checkboxes);
};

View File

@@ -16,10 +16,11 @@ class Progress extends WeatherDisplay {
// disable any navigation timing
this.timing = false;
this.version = document.getElementById('version').innerHTML;
// setup event listener
this.elem.querySelector('.container').addEventListener('click', this.lineClick.bind(this));
// setup event listener for dom-required initialization
document.addEventListener('DOMContentLoaded', () => {
this.version = document.getElementById('version').innerHTML;
this.elem.querySelector('.container').addEventListener('click', this.lineClick.bind(this));
});
this.okToDrawCurrentConditions = false;
}

View File

@@ -41,7 +41,9 @@ class WeatherDisplay {
this.startNavCount();
// get any templates
this.loadTemplates();
document.addEventListener('DOMContentLoaded', () => {
this.loadTemplates();
});
}
generateCheckbox(defaultEnabled = true) {