1
+ const enabledSwitch = document . getElementById ( "enabled" ) ;
1
2
const instanceInputter = document . getElementById ( "instance" ) ;
2
3
const tokenInputter = document . getElementById ( "token" ) ;
3
4
const visibilitySelector = document . getElementById ( "visibility" ) ;
4
- const enabledSwitch = document . getElementById ( "enabled" ) ;
5
5
const saveBtn = document . getElementById ( "btns_save" ) ;
6
6
const closeBtn = document . getElementById ( "btns_close" ) ;
7
7
@@ -16,43 +16,67 @@ const throwError = errorKey => {
16
16
throw definedMessages [ errorKey ] . message ;
17
17
} ;
18
18
19
+ /**
20
+ * Changes a collection of visibilities by provided instance's type
21
+ * @param {String } type
22
+ */
23
+ const changeVisibilities = type => {
24
+ if ( Instance . Type [ type ] ) {
25
+ while ( visibilitySelector . options . length > 0 ) visibilitySelector . options . remove ( 0 ) ;
26
+
27
+ for ( let name of Instance . Visibility [ type ] ) {
28
+ const option = new Option ( definedMessages [ `setting_visibility_${ type } _${ name } ` ] . message , name ) ;
29
+ option . setAttribute ( "Name" , `visibility.${ name } ` ) ;
30
+ option . setAttribute ( "Locale-Message" , `setting_visibility_${ type } _${ name } ` ) ;
31
+
32
+ visibilitySelector . add ( option ) ;
33
+ }
34
+
35
+ chrome . storage . local . get ( "visibility" , items => {
36
+ const { visibility } = items ;
37
+
38
+ if ( visibility && Instance . Visibility [ type ] . includes ( visibility ) ) visibilitySelector . namedItem ( `visibility.${ visibility } ` ) . selected = true ;
39
+ M . FormSelect . init ( visibilitySelector ) ;
40
+ } ) ;
41
+ }
42
+ } ;
43
+
19
44
20
45
21
46
window . addEventListener ( "DOMContentLoaded" , ( ) => {
22
47
document . querySelectorAll ( "Select" ) . forEach ( select => M . FormSelect . init ( select ) ) ;
23
- } ) ;
24
48
25
- window . addEventListener ( "DOMContentLoaded" , ( ) => {
26
- chrome . storage . local . get ( [ "enabled" , "type" , "instance" , "token" , "visibility" ] , items => {
27
- const { enabled, type, instance, token, visibility } = items ;
49
+ chrome . storage . local . get ( [ "enabled" , "type" , "instance" , "token" ] , items => {
50
+ const { enabled, type, instance, token } = items ;
28
51
29
52
if ( enabled ) enabledSwitch . checked = enabled ;
30
53
if ( instance ) instanceInputter . value = instance ;
31
54
if ( token ) tokenInputter . value = token ;
32
55
33
- if ( type && type !== Instance . Type . None ) {
34
- for ( let visibility of Instance . Visibility [ type ] ) {
35
- const option = new Option ( definedMessages [ `setting_visibility_${ type } _${ visibility } ` ] . message , visibility ) ;
36
- option . setAttribute ( "Name" , `visibility.${ visibility } ` ) ;
37
- option . setAttribute ( "Locale-Message" , `setting_visibility_${ type } _${ visibility } ` ) ;
38
-
39
- visibilitySelector . add ( option ) ;
40
- }
41
- }
42
-
43
- if ( visibility && Instance . Visibility [ type ] . includes ( visibility ) ) visibilitySelector . namedItem ( `visibility.${ visibility } ` ) . selected = true ;
44
-
56
+ changeVisibilities ( type ) ;
45
57
M . updateTextFields ( ) ;
46
- M . FormSelect . init ( visibilitySelector ) ;
47
58
} ) ;
59
+ } ) ;
48
60
49
- enabledSwitch . addEventListener ( "change" , event => {
50
- const enabled = event . target . checked ;
61
+ window . addEventListener ( "DOMContentLoaded" , ( ) => {
62
+ enabledSwitch . addEventListener ( "change" , function ( ) {
63
+ const enabled = this . checked ;
51
64
52
65
chrome . storage . local . set ( { enabled } ) ;
53
66
chrome . browserAction . setBadgeText ( { text : enabled ? "ON" : "OFF" } ) ;
54
67
} ) ;
55
68
69
+ instanceInputter . addEventListener ( "blur" , function ( ) {
70
+ const instance = new Instance ( this . value ) ;
71
+
72
+ instance . on ( "init" , ( ) => {
73
+ const { type } = instance ;
74
+
75
+ changeVisibilities ( type ) ;
76
+ M . FormSelect . init ( visibilitySelector ) ;
77
+ } ) ;
78
+ } ) ;
79
+
56
80
saveBtn . addEventListener ( "click" , ( ) => {
57
81
const instance = new Instance ( instanceInputter . value ) ;
58
82
0 commit comments