@@ -12,7 +12,18 @@ firetext.settings = {};
1212
1313
1414/* Settings
15- ------------------------*/
15+ ------------------------*/
16+ var defaultSettings = {
17+ "autoload" : "false" ,
18+ "autosave" : "true" ,
19+ "autosaveNotification" : "true" ,
20+ "dropbox.enabled" : "false" ,
21+ "language" : "auto" ,
22+ "nightmode" : "false" ,
23+ "previews.enabled" : "auto" ,
24+ "stats.enabled" : "true" ,
25+ } ;
26+
1627firetext . settings . init = function ( ) {
1728 // Select elements
1829 var autoloadEnabled = document . querySelector ( '#autoload-enabled-switch' ) ;
@@ -25,28 +36,28 @@ firetext.settings.init = function () {
2536 var statsEnabled = document . querySelector ( '#stats-enabled-switch' ) ;
2637
2738 // Autoload
28- if ( firetext . settings . get ( 'autoload' ) == 'true' ) {
29- autoloadEnabled . setAttribute ( 'checked' , '' ) ;
30- } else {
31- autoloadEnabled . removeAttribute ( 'checked' ) ;
32- if ( ! firetext . settings . get ( 'autoload' ) ) {
33- firetext . settings . save ( 'autoload' , 'false ') ;
34- }
39+ switch ( firetext . settings . get ( 'autoload' ) ) {
40+ case "true" :
41+ autoloadEnabled . setAttribute ( 'checked' , '' ) ;
42+ break ;
43+ case "false" :
44+ autoloadEnabled . removeAttribute ( 'checked ') ;
45+ break ;
3546 }
3647 autoloadEnabled . onchange = function ( ) {
3748 firetext . settings . save ( 'autoload' , this . checked ) ;
3849 }
3950
4051 // Autosave
41- if ( firetext . settings . get ( 'autosave' ) != 'false' ) {
42- autosaveEnabled . setAttribute ( 'checked' , '' ) ;
43- if ( firetext . settings . get ( 'autosave' ) != 'true' ) {
44- firetext . settings . save ( 'autosave' , 'true' ) ;
45- }
46- document . getElementById ( 'autosave-notification-setting' ) . style . display = 'block' ;
47- } else {
48- autosaveEnabled . removeAttribute ( 'checked' ) ;
49- document . getElementById ( 'autosave-notification-setting' ) . style . display = 'none' ;
52+ switch ( firetext . settings . get ( 'autosave' ) ) {
53+ case "true" :
54+ autosaveEnabled . setAttribute ( 'checked' , '' ) ;
55+ if ( deviceType == 'desktop' ) document . getElementById ( 'autosave-notification-setting' ) . style . display = 'block' ;
56+ break ;
57+ case "false" :
58+ autosaveEnabled . removeAttribute ( 'checked' ) ;
59+ if ( deviceType == 'desktop' ) document . getElementById ( 'autosave-notification-setting' ) . style . display = 'none' ;
60+ break ;
5061 }
5162 autosaveEnabled . onchange = function ( ) {
5263 firetext . settings . save ( 'autosave' , this . checked ) ;
@@ -61,13 +72,13 @@ firetext.settings.init = function () {
6172
6273 // Autosave Notification
6374 if ( deviceType == 'desktop' ) {
64- if ( firetext . settings . get ( 'autosaveNotification' ) != 'false' ) {
65- autosaveNotificationEnabled . setAttribute ( 'checked' , '' ) ;
66- if ( firetext . settings . get ( 'autosaveNotification' ) != 'true' ) {
67- firetext . settings . save ( 'autosaveNotification' , 'true' ) ;
68- }
69- } else {
70- autosaveNotificationEnabled . removeAttribute ( 'checked' ) ;
75+ switch ( firetext . settings . get ( 'autosaveNotification' ) ) {
76+ case "true" :
77+ autosaveNotificationEnabled . setAttribute ( 'checked' , '' ) ;
78+ break ;
79+ case "false" :
80+ autosaveNotificationEnabled . removeAttribute ( 'checked' ) ;
81+ break ;
7182 }
7283 autosaveNotificationEnabled . onchange = function ( ) {
7384 firetext . settings . save ( 'autosaveNotification' , this . checked ) ;
@@ -77,20 +88,20 @@ firetext.settings.init = function () {
7788 }
7889
7990 // Dropbox
80- if ( firetext . settings . get ( 'dropbox.enabled' ) == 'true' ) {
81- dropboxEnabled . setAttribute ( 'checked' , '' ) ;
82- } else {
83- dropboxEnabled . removeAttribute ( 'checked' ) ;
91+ switch ( firetext . settings . get ( 'dropbox.enabled' ) ) {
92+ case "true" :
93+ dropboxEnabled . setAttribute ( 'checked' , '' ) ;
94+ break ;
95+ case "false" :
96+ dropboxEnabled . removeAttribute ( 'checked' ) ;
97+ break ;
8498 }
8599 dropboxEnabled . onchange = function ( ) {
86100 firetext . settings . save ( 'dropbox.enabled' , this . checked ) ;
87101 cloud . init ( ) ;
88102 }
89103
90104 // Language
91- if ( ! firetext . settings . get ( 'language' ) ) {
92- firetext . settings . save ( 'language' , 'auto' ) ;
93- }
94105 languageSelect . value = firetext . settings . get ( 'language' ) ;
95106 languageSelect . addEventListener ( 'change' , function ( ) {
96107 // Save
@@ -101,15 +112,16 @@ firetext.settings.init = function () {
101112 } ) ;
102113
103114 // Night Mode
104- if ( firetext . settings . get ( 'nightmode' ) == 'true' ) {
105- nightmodeSelect . value = '1' ;
106- } else if ( firetext . settings . get ( 'nightmode' ) == 'auto' ) {
107- nightmodeSelect . value = '2' ;
108- } else {
109- nightmodeSelect . value = '0' ;
110- if ( firetext . settings . get ( 'nightmode' ) != 'false' ) {
111- firetext . settings . save ( 'nightmode' , 'false' ) ;
112- }
115+ switch ( firetext . settings . get ( 'nightmode' ) ) {
116+ case "false" :
117+ nightmodeSelect . value = '0' ;
118+ break ;
119+ case "true" :
120+ nightmodeSelect . value = '1' ;
121+ break ;
122+ case "auto" :
123+ nightmodeSelect . value = '2' ;
124+ break ;
113125 }
114126 nightmodeSelect . addEventListener ( 'change' , function ( ) {
115127 // Convert
@@ -130,18 +142,22 @@ firetext.settings.init = function () {
130142 } ) ;
131143
132144 // Previews
133- if ( firetext . settings . get ( 'previews.enabled' ) == 'always' ) {
134- previewsSelect . value = '1' ;
135- } else if ( firetext . settings . get ( 'previews.enabled' ) == 'never' || firetext . settings . get ( 'previews.enabled' ) == 'false' ) {
136- previewsSelect . value = '0' ;
137- if ( firetext . settings . get ( 'previews.enabled' ) != 'never' ) {
138- firetext . settings . save ( 'previews.enabled' , 'never' ) ;
139- }
140- } else { // true, auto
141- previewsSelect . value = '2' ;
142- if ( firetext . settings . get ( 'previews.enabled' ) != 'auto' ) {
143- firetext . settings . save ( 'previews.enabled' , 'auto' ) ;
144- }
145+ switch ( firetext . settings . get ( 'previews.enabled' ) ) {
146+ case "false" :
147+ case "never" :
148+ previewsSelect . value = '0' ;
149+
150+ // Fix old value
151+ if ( firetext . settings . get ( 'previews.enabled' ) == 'false' ) {
152+ firetext . settings . save ( 'previews.enabled' , 'never' ) ;
153+ }
154+ break ;
155+ case "always" :
156+ previewsSelect . value = '1' ;
157+ break ;
158+ case "auto" :
159+ previewsSelect . value = '2' ;
160+ break ;
145161 }
146162 updatePreviewsEnabled ( ) ;
147163 previewsSelect . addEventListener ( 'change' , function ( ) {
@@ -163,13 +179,13 @@ firetext.settings.init = function () {
163179 } ) ;
164180
165181 // Stats
166- if ( firetext . settings . get ( 'stats.enabled' ) != 'false' ) {
167- statsEnabled . setAttribute ( 'checked' , '' ) ;
168- if ( firetext . settings . get ( 'stats.enabled' ) != 'true' ) {
169- firetext . settings . save ( 'stats.enabled' , 'true' ) ;
170- }
171- } else {
172- statsEnabled . removeAttribute ( 'checked' ) ;
182+ switch ( firetext . settings . get ( 'stats.enabled' ) ) {
183+ case "true" :
184+ statsEnabled . setAttribute ( 'checked' , '' ) ;
185+ break ;
186+ case "false" :
187+ statsEnabled . removeAttribute ( 'checked' ) ;
188+ break ;
173189 }
174190 statsEnabled . onchange = function ( ) {
175191 firetext . settings . save ( 'stats.enabled' , this . checked ) ;
@@ -185,8 +201,12 @@ firetext.settings.init = function () {
185201} ;
186202
187203firetext . settings . get = function ( name ) {
188- name = ( "firetext.settings." + name ) ;
189- return localStorage . getItem ( name ) ;
204+ var localStorageItem = localStorage . getItem ( ( "firetext.settings." + name ) ) ;
205+ if ( localStorageItem ) {
206+ return localStorageItem ;
207+ } else {
208+ return defaultSettings [ name ] ;
209+ }
190210} ;
191211
192212firetext . settings . save = function ( name , value ) {
0 commit comments