History

Refactor settings

Thibaut committed 11 years ago

Commit b898ac11 parent 5c1a9ed5 files · +52 −21Browse files

Unified · Split

5 files
  1. assets/javascripts/app/app.coffee +5 −5
  2. assets/javascripts/app/settings.coffee +39 −8
  3. assets/javascripts/views/content/root_page.coffee +2 −2
  4. assets/javascripts/views/misc/news.coffee +2 −2
  5. assets/javascripts/views/sidebar/doc_list.coffee +4 −4
assets/javascripts/app/app.coffee+5−5
@@ -13,7 +13,7 @@ · 12 unmodified lines
1313
1414 @store = new Store
1515 @appCache = new app.AppCache if app.AppCache.isEnabled()
16− @settings = new app.Settings
16+ @settings = new app.Settings @store
1717
1818 @docs = new app.collections.Docs
1919 @disabledDocs = new app.collections.Docs
@@ -91,10 +91,10 @@ · 71 unmodified lines
9191 return
9292
9393 welcomeBack: ->
94− @visitCount = @store.get('count') or 0
95− @store.set 'count', ++@visitCount
96− new app.views.Notif 'Share', autoHide: null if @visitCount is 5
97− new app.views.Notif 'Thanks', autoHide: null if @visitCount is 10 or ((n = app.store.get('news')) and n <= 1417305600000)
94+ visitCount = @settings.get('count')
95+ @settings.set 'count', ++visitCount
96+ new app.views.Notif 'Share', autoHide: null if visitCount is 5
97+ new app.views.Notif 'Thanks', autoHide: null if visitCount is 10 or ((n = @settings.get('news')) and n <= 1417305600000)
9898 new app.views.News()
9999
100100 reload: ->
assets/javascripts/app/settings.coffee+39−8
@@ -1,25 +1,56 @@
11 class app.Settings
2+ SETTINGS_KEY = 'settings'
3+ DOCS_KEY = 'docs'
4+
5+ @defaults: ->
6+ count: 0
7+ hideDisabled: false
8+ hideIntro: false
9+ news: 0
10+
11+ constructor: (@store) ->
12+ @create() unless @settings = @store.get(SETTINGS_KEY)
13+
14+ create: ->
15+ @settings = @constructor.defaults()
16+ @applyLegacyValues @settings
17+ @save()
18+ return
19+
20+ applyLegacyValues: (settings) ->
21+ for key, v of settings when value = @store.get(key)
22+ settings[key] = value
23+ @store.del(key)
24+ return
25+
26+ save: ->
27+ @store.set SETTINGS_KEY, @settings
28+
29+ set: (key, value) ->
30+ @settings[key] = value
31+ @save()
32+
33+ get: (key) ->
34+ @settings[key]
35+
236 hasDocs: ->
3− try
4− !!Cookies.get 'docs'
5− catch
37+ try !!Cookies.get DOCS_KEY
638
739 getDocs: ->
840 try
9− Cookies.get('docs')?.split('/') or app.config.default_docs
41+ Cookies.get(DOCS_KEY)?.split('/') or app.config.default_docs
1042 catch
1143 app.config.default_docs
1244
1345 setDocs: (docs) ->
1446 try
15− Cookies.set 'docs', docs.join('/'),
47+ Cookies.set DOCS_KEY, docs.join('/'),
1648 path: '/'
1749 expires: 1e8
1850 catch
1951 return
2052
2153 reset: ->
22− try
23− Cookies.expire 'docs'
24− catch
54+ try Cookies.expire DOCS_KEY
55+ try @store.del(SETTINGS_KEY)
2556 return
assets/javascripts/views/content/root_page.coffee+2−2
@@ -19,11 +19,11 @@ class app.views.RootPage extends app.View · 18 unmodified lines
1919 return
2020
2121 setHidden: (value) ->
22− app.store.set 'hideIntro', value
22+ app.settings.set 'hideIntro', value
2323 return
2424
2525 isHidden: ->
26− app.isSingleDoc() or app.store.get 'hideIntro'
26+ app.isSingleDoc() or app.settings.get 'hideIntro'
2727
2828 onRoute: ->
2929
assets/javascripts/views/misc/news.coffee+2−2
@@ -27,8 +27,8 @@ class app.views.News extends app.views.Notif · 26 unmodified lines
2727 new Date(app.news[0][0]).getTime()
2828
2929 getLastReadTime: ->
30− app.store.get 'news'
30+ app.settings.get 'news'
3131
3232 markAllAsRead: ->
33− app.store.set 'news', @getLastNewsTime() + 1
33+ app.settings.set 'news', @getLastNewsTime() + 1
3434 return
assets/javascripts/views/sidebar/doc_list.coffee+4−4
@@ -46,10 +46,10 @@ class app.views.DocList extends app.View · 45 unmodified lines
4646 return
4747
4848 renderDisabledList: ->
49− if (hidden = app.store.get 'hideDisabled') is true
49+ if (hidden = app.settings.get 'hideDisabled') is true
5050 @removeDisabledList()
5151 else
52− app.store.set 'hideDisabled', false unless hidden is false
52+ app.settings.set 'hideDisabled', false unless hidden is false
5353 @appendDisabledList()
5454 return
5555
@@ -129,10 +129,10 @@ class app.views.DocList extends app.View · 73 unmodified lines
129129
130130 if @disabledTitle.classList.contains('open-title')
131131 @removeDisabledList()
132− app.store.set 'hideDisabled', true
132+ app.settings.set 'hideDisabled', true
133133 else
134134 @appendDisabledList()
135− app.store.set 'hideDisabled', false
135+ app.settings.set 'hideDisabled', false
136136
137137
138138 afterRoute: (route, context) =>