mirror of https://github.com/freeCodeCamp/devdocs
parent
5c1a9ed640
commit
b898ac18c8
@ -1,25 +1,56 @@
|
||||
class app.Settings
|
||||
SETTINGS_KEY = 'settings'
|
||||
DOCS_KEY = 'docs'
|
||||
|
||||
@defaults: ->
|
||||
count: 0
|
||||
hideDisabled: false
|
||||
hideIntro: false
|
||||
news: 0
|
||||
|
||||
constructor: (@store) ->
|
||||
@create() unless @settings = @store.get(SETTINGS_KEY)
|
||||
|
||||
create: ->
|
||||
@settings = @constructor.defaults()
|
||||
@applyLegacyValues @settings
|
||||
@save()
|
||||
return
|
||||
|
||||
applyLegacyValues: (settings) ->
|
||||
for key, v of settings when value = @store.get(key)
|
||||
settings[key] = value
|
||||
@store.del(key)
|
||||
return
|
||||
|
||||
save: ->
|
||||
@store.set SETTINGS_KEY, @settings
|
||||
|
||||
set: (key, value) ->
|
||||
@settings[key] = value
|
||||
@save()
|
||||
|
||||
get: (key) ->
|
||||
@settings[key]
|
||||
|
||||
hasDocs: ->
|
||||
try
|
||||
!!Cookies.get 'docs'
|
||||
catch
|
||||
try !!Cookies.get DOCS_KEY
|
||||
|
||||
getDocs: ->
|
||||
try
|
||||
Cookies.get('docs')?.split('/') or app.config.default_docs
|
||||
Cookies.get(DOCS_KEY)?.split('/') or app.config.default_docs
|
||||
catch
|
||||
app.config.default_docs
|
||||
|
||||
setDocs: (docs) ->
|
||||
try
|
||||
Cookies.set 'docs', docs.join('/'),
|
||||
Cookies.set DOCS_KEY, docs.join('/'),
|
||||
path: '/'
|
||||
expires: 1e8
|
||||
catch
|
||||
return
|
||||
|
||||
reset: ->
|
||||
try
|
||||
Cookies.expire 'docs'
|
||||
catch
|
||||
try Cookies.expire DOCS_KEY
|
||||
try @store.del(SETTINGS_KEY)
|
||||
return
|
||||
|
Loading…
Reference in new issue