circuitpython-org/assets/javascript/download.js

47 lines
1.5 KiB
JavaScript

document.addEventListener('DOMContentLoaded',function() {
var languageSelect = document.querySelectorAll(".language-select select");
languageSelect.forEach(function(select) {
select.onchange = languageSelectHandler;
});
var script = document.createElement('script');
script.setAttribute('src', '//accounts.adafruit.com/users/locale?callback=setLocale');
document.body.appendChild(script);
},false);
function languageSelectHandler(event) {
// find download-details, two levels up from select
// event may either be an event from selection, or passed from setLocale
// as a select element.
if (event.target) {
var selectedOption = event.target;
var parentNode = event.target.parentNode.parentNode;
} else {
var selectedOption = event.selectedOptions[0];
var parentNode = event.parentNode.parentNode;
}
var files = selectedOption.value.split(',');
files.forEach(function(file) {
var extension = file.substr(file.lastIndexOf('.') + 1);
parentNode.querySelector(".download-button." + extension).href = file;
});
}
function setLocale(response) {
var languages = response.languages;
var languageSelect = document.querySelectorAll(".language-select select");
languageSelect.forEach(function(select) {
var options = select.options;
for (var i = 0; i < options.length; i++) {
if (languages.includes(options[i].dataset.locale)) {
options[i].selected = true;
select.onchange(select);
break;
}
}
});
}