/* * decaffeinate suggestions: * DS207: Consider shorter variations of null checks * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md */ app.UpdateChecker = class UpdateChecker { constructor() { this.checkDocs = this.checkDocs.bind(this); this.onFocus = this.onFocus.bind(this); this.lastCheck = Date.now(); $.on(window, 'focus', this.onFocus); if (app.serviceWorker != null) { app.serviceWorker.on('updateready', this.onUpdateReady); } setTimeout(this.checkDocs, 0); } check() { if (app.serviceWorker) { app.serviceWorker.update(); } else { ajax({ url: $('script[src*="application"]').getAttribute('src'), dataType: 'application/javascript', error: (_, xhr) => { if (xhr.status === 404) { return this.onUpdateReady(); } } }); } } onUpdateReady() { new app.views.Notif('UpdateReady', {autoHide: null}); } checkDocs() { if (!app.settings.get('manualUpdate')) { app.docs.updateInBackground(); } else { app.docs.checkForUpdates(i => { if (i > 0) { return this.onDocsUpdateReady(); } }); } } onDocsUpdateReady() { new app.views.Notif('UpdateDocs', {autoHide: null}); } onFocus() { if ((Date.now() - this.lastCheck) > 21600e3) { this.lastCheck = Date.now(); this.check(); } } };