mirror of https://github.com/freeCodeCamp/devdocs
parent
5c1a9ed640
commit
b898ac18c8
@ -1,25 +1,56 @@
|
|||||||
class app.Settings
|
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: ->
|
hasDocs: ->
|
||||||
try
|
try !!Cookies.get DOCS_KEY
|
||||||
!!Cookies.get 'docs'
|
|
||||||
catch
|
|
||||||
|
|
||||||
getDocs: ->
|
getDocs: ->
|
||||||
try
|
try
|
||||||
Cookies.get('docs')?.split('/') or app.config.default_docs
|
Cookies.get(DOCS_KEY)?.split('/') or app.config.default_docs
|
||||||
catch
|
catch
|
||||||
app.config.default_docs
|
app.config.default_docs
|
||||||
|
|
||||||
setDocs: (docs) ->
|
setDocs: (docs) ->
|
||||||
try
|
try
|
||||||
Cookies.set 'docs', docs.join('/'),
|
Cookies.set DOCS_KEY, docs.join('/'),
|
||||||
path: '/'
|
path: '/'
|
||||||
expires: 1e8
|
expires: 1e8
|
||||||
catch
|
catch
|
||||||
return
|
return
|
||||||
|
|
||||||
reset: ->
|
reset: ->
|
||||||
try
|
try Cookies.expire DOCS_KEY
|
||||||
Cookies.expire 'docs'
|
try @store.del(SETTINGS_KEY)
|
||||||
catch
|
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in new issue