Skip to content

Commit d9f5e04

Browse files
committed
automatically set locale on page load, if locale matches download option
1 parent 7465086 commit d9f5e04

File tree

1 file changed

+25
-15
lines changed

1 file changed

+25
-15
lines changed

assets/javascript/download.js

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,27 @@
1-
var languageSelect;
2-
31
document.addEventListener('DOMContentLoaded',function() {
4-
languageSelect = document.querySelectorAll(".language-select select");
2+
var languageSelect = document.querySelectorAll(".language-select select");
53
languageSelect.forEach(function(select) {
64
select.onchange = languageSelectHandler;
75
});
86

97
var script = document.createElement('script');
10-
script.src = '//accounts.adafruit.com/users/locale?callback=setLocale';
11-
document.head.appendChild(script);
8+
script.setAttribute('src', '//accounts.adafruit.com/users/locale?callback=setLocale');
9+
document.body.appendChild(script);
1210
},false);
1311

1412
function languageSelectHandler(event) {
1513
// find download-details, two levels up from select
16-
var parentNode = event.target.parentNode.parentNode;
17-
var files = event.target.value.split(',');
14+
// event may either be an event from selection, or passed from setLocale
15+
// as a select element.
16+
if (event.target) {
17+
var selectedOption = event.target;
18+
var parentNode = event.target.parentNode.parentNode;
19+
} else {
20+
var selectedOption = event.selectedOptions[0];
21+
var parentNode = event.parentNode.parentNode;
22+
}
23+
24+
var files = selectedOption.value.split(',');
1825

1926
files.forEach(function(file) {
2027
var extension = file.substr(file.lastIndexOf('.') + 1);
@@ -23,14 +30,17 @@ function languageSelectHandler(event) {
2330
}
2431

2532
function setLocale(response) {
26-
var languages = response.languages.join(' ')
27-
var options = languageSelect.options;
33+
var languages = response.languages;
34+
var languageSelect = document.querySelectorAll(".language-select select");
2835

29-
for (var i = 0; i < options.length; i++) {
30-
if (languages.includes(options[i].dataset.locale)) {
31-
console.log(options[i].dataset.locale);
32-
options[i].selected = true;
33-
languageSelect.onchange();
36+
languageSelect.forEach(function(select) {
37+
var options = select.options;
38+
39+
for (var i = 0; i < options.length; i++) {
40+
if (languages.includes(options[i].dataset.locale)) {
41+
options[i].selected = true;
42+
select.onchange(select);
43+
}
3444
}
35-
}
45+
});
3646
}

0 commit comments

Comments
 (0)