1
- var languageSelect ;
2
-
3
1
document . addEventListener ( 'DOMContentLoaded' , function ( ) {
4
- languageSelect = document . querySelectorAll ( ".language-select select" ) ;
2
+ var languageSelect = document . querySelectorAll ( ".language-select select" ) ;
5
3
languageSelect . forEach ( function ( select ) {
6
4
select . onchange = languageSelectHandler ;
7
5
} ) ;
8
6
9
7
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 ) ;
12
10
} , false ) ;
13
11
14
12
function languageSelectHandler ( event ) {
15
13
// 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 ( ',' ) ;
18
25
19
26
files . forEach ( function ( file ) {
20
27
var extension = file . substr ( file . lastIndexOf ( '.' ) + 1 ) ;
@@ -23,14 +30,17 @@ function languageSelectHandler(event) {
23
30
}
24
31
25
32
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" ) ;
28
35
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
+ }
34
44
}
35
- }
45
+ } ) ;
36
46
}
0 commit comments