| | |
| | | this.initListeners(); |
| | | this.initStore(); |
| | | if (this.canUpdateUI && this.ui.panel) { |
| | | this.popup = new window.jvbPopup({ |
| | | this.popup = window.jvbPopup.registerPopup({ |
| | | popup: this.ui.panel, |
| | | toggle: this.ui.toggle.button, |
| | | name: 'Queue Panel', |
| | |
| | | this.onlineHandler = this.handleOnline.bind(this); |
| | | this.offlineHandler = this.handleOffline.bind(this); |
| | | this.unloadHandler = this.handleBeforeUnload.bind(this); |
| | | this.visibilityHandler = this.handleVisibilityChange.bind(this); |
| | | |
| | | document.addEventListener('click', this.clickHandler); |
| | | window.addEventListener('online', this.onlineHandler); |
| | | window.addEventListener('offline', this.offlineHandler); |
| | | |
| | | window.addEventListener('beforeunload', this.unloadHandler); |
| | | |
| | | document.addEventListener('visibilitychange', this.visibilityHandler); |
| | | } |
| | | handleOnline() { |
| | | this.updatePanel('synced'); |
| | |
| | | handleOffline() { |
| | | this.updatePanel('offline'); |
| | | } |
| | | |
| | | handleVisibilityChange(e) { |
| | | if (this.isPolling && document.hidden) { |
| | | this.stopPolling(); |
| | | } else { |
| | | this.maybeStartPolling(); |
| | | } |
| | | } |
| | | handleBeforeUnload(e) { |
| | | if (!this.ui.panel) return; |
| | | const total = this.getQueueByStatus(this.pendingStatuses).length; |
| | |
| | | storeName: 'queue', |
| | | keyPath: 'id', |
| | | endpoint: this.endpoint, |
| | | // TTL: Infinity, |
| | | TTL: 5000, |
| | | TTL: Infinity, |
| | | indexes: [ |
| | | {name: 'status', keyPath: 'status'}, |
| | | {name: 'type', keyPath: 'type'}, |
| | |
| | | } |
| | | }); |
| | | }); |
| | | |