devdocs/assets/javascripts/app/appcache.coffee
2014-11-23 10:51:47 -05:00

42 lines
943 B
CoffeeScript

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', autoHide: null unless @reloading
@trigger 'updateready'
return