mirror of https://github.com/freeCodeCamp/devdocs
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
927 B
43 lines
927 B
11 years ago
|
class app.AppCache
|
||
|
$.extend @prototype, Events
|
||
|
|
||
|
@isEnabled: ->
|
||
|
try
|
||
|
applicationCache and applicationCache.status isnt applicationCache.UNCACHED
|
||
|
catch
|
||
|
|
||
|
constructor: ->
|
||
|
@cache = applicationCache
|
||
|
@onUpdateReady() if @cache.status is @cache.UPDATEREADY
|
||
|
|
||
|
$.on @cache, 'progress', @onProgress
|
||
|
$.on @cache, 'updateready', @onUpdateReady
|
||
|
|
||
|
@lastCheck = Date.now()
|
||
|
$.on window, 'focus', @checkForUpdate
|
||
|
|
||
|
update: ->
|
||
|
try @cache.update() catch
|
||
|
return
|
||
|
|
||
|
reload: ->
|
||
|
@reloading = true
|
||
|
$.on @cache, 'updateready noupdate error', -> window.location = '/'
|
||
|
@update()
|
||
|
return
|
||
|
|
||
|
checkForUpdate: =>
|
||
|
if Date.now() - @lastCheck > 86400e3
|
||
|
@lastCheck = Date.now()
|
||
|
@update()
|
||
|
return
|
||
|
|
||
|
onProgress: (event) =>
|
||
|
@trigger 'progress', event
|
||
|
return
|
||
|
|
||
|
onUpdateReady: =>
|
||
|
new app.views.Notif 'UpdateReady' unless @reloading
|
||
|
@trigger 'updateready'
|
||
|
return
|