app.UpdateChecker = class UpdateChecker { constructor() { this.lastCheck = Date.now(); $.on(window, "focus", () => this.onFocus()); if (app.serviceWorker) { 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(); } } };