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
13 13
14 @store = new Store14 @store = new Store
15 @appCache = new app.AppCache if app.AppCache.isEnabled()15 @appCache = new app.AppCache if app.AppCache.isEnabled()
16 @settings = new app.Settings16 @settings = new app.Settings @store
17 17
18 @docs = new app.collections.Docs18 @docs = new app.collections.Docs
19 @disabledDocs = new app.collections.Docs19 @disabledDocs = new app.collections.Docs
@@ -91,10 +91,10 @@ · 71 unmodified lines
91 return91 return
92 92
93 welcomeBack: ->93 welcomeBack: ->
94 @visitCount = @store.get('count') or 094 visitCount = @settings.get('count')
95 @store.set 'count', ++@visitCount95 @settings.set 'count', ++visitCount
96 new app.views.Notif 'Share', autoHide: null if @visitCount is 596 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)97 new app.views.Notif 'Thanks', autoHide: null if visitCount is 10 or ((n = @settings.get('news')) and n <= 1417305600000)
98 new app.views.News()98 new app.views.News()
99 99
100 reload: ->100 reload: ->
assets/javascripts/app/settings.coffee+39−8
@@ -1,25 +1,56 @@
1class app.Settings1class 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
2 hasDocs: ->36 hasDocs: ->
3 try37 try !!Cookies.get DOCS_KEY
4 !!Cookies.get 'docs'
5 catch
6 38
7 getDocs: ->39 getDocs: ->
8 try40 try
9 Cookies.get('docs')?.split('/') or app.config.default_docs41 Cookies.get(DOCS_KEY)?.split('/') or app.config.default_docs
10 catch42 catch
11 app.config.default_docs43 app.config.default_docs
12 44
13 setDocs: (docs) ->45 setDocs: (docs) ->
14 try46 try
15 Cookies.set 'docs', docs.join('/'),47 Cookies.set DOCS_KEY, docs.join('/'),
16 path: '/'48 path: '/'
17 expires: 1e849 expires: 1e8
18 catch50 catch
19 return51 return
20 52
21 reset: ->53 reset: ->
22 try54 try Cookies.expire DOCS_KEY
23 Cookies.expire 'docs'55 try @store.del(SETTINGS_KEY)
24 catch
25 return56 return
assets/javascripts/views/content/root_page.coffee+2−2
@@ -19,11 +19,11 @@ class app.views.RootPage extends app.View · 18 unmodified lines
19 return19 return
20 20
21 setHidden: (value) ->21 setHidden: (value) ->
22 app.store.set 'hideIntro', value22 app.settings.set 'hideIntro', value
23 return23 return
24 24
25 isHidden: ->25 isHidden: ->
26 app.isSingleDoc() or app.store.get 'hideIntro'26 app.isSingleDoc() or app.settings.get 'hideIntro'
27 27
28 onRoute: ->28 onRoute: ->
29 29
assets/javascripts/views/misc/news.coffee+2−2
@@ -27,8 +27,8 @@ class app.views.News extends app.views.Notif · 26 unmodified lines
27 new Date(app.news[0][0]).getTime()27 new Date(app.news[0][0]).getTime()
28 28
29 getLastReadTime: ->29 getLastReadTime: ->
30 app.store.get 'news'30 app.settings.get 'news'
31 31
32 markAllAsRead: ->32 markAllAsRead: ->
33 app.store.set 'news', @getLastNewsTime() + 133 app.settings.set 'news', @getLastNewsTime() + 1
34 return34 return
assets/javascripts/views/sidebar/doc_list.coffee+4−4
@@ -46,10 +46,10 @@ class app.views.DocList extends app.View · 45 unmodified lines
46 return46 return
47 47
48 renderDisabledList: ->48 renderDisabledList: ->
49 if (hidden = app.store.get 'hideDisabled') is true49 if (hidden = app.settings.get 'hideDisabled') is true
50 @removeDisabledList()50 @removeDisabledList()
51 else51 else
52 app.store.set 'hideDisabled', false unless hidden is false52 app.settings.set 'hideDisabled', false unless hidden is false
53 @appendDisabledList()53 @appendDisabledList()
54 return54 return
55 55
@@ -129,10 +129,10 @@ class app.views.DocList extends app.View · 73 unmodified lines
129 129
130 if @disabledTitle.classList.contains('open-title')130 if @disabledTitle.classList.contains('open-title')
131 @removeDisabledList()131 @removeDisabledList()
132 app.store.set 'hideDisabled', true132 app.settings.set 'hideDisabled', true
133 else133 else
134 @appendDisabledList()134 @appendDisabledList()
135 app.store.set 'hideDisabled', false135 app.settings.set 'hideDisabled', false
136 136
137 137
138 afterRoute: (route, context) =>138 afterRoute: (route, context) =>