diff --git a/web/app/assets/javascripts/everywhere/everywhere.js b/web/app/assets/javascripts/everywhere/everywhere.js index 286214c4d..851526ca4 100644 --- a/web/app/assets/javascripts/everywhere/everywhere.js +++ b/web/app/assets/javascripts/everywhere/everywhere.js @@ -181,6 +181,7 @@ } function initializeInfluxDB() { + /** context.stats = new InfluxDB({ "host" : gon.global.influxdb_host, "port" : gon.global.influxdb_port, @@ -190,6 +191,8 @@ }); context.stats.write = context.stats.writePoint; + */ + context.stats = {write:function() {}} } function initializeStun(app) { diff --git a/web/app/assets/javascripts/homeScreen.js b/web/app/assets/javascripts/homeScreen.js index 2518b1f1c..cf4cd9372 100644 --- a/web/app/assets/javascripts/homeScreen.js +++ b/web/app/assets/javascripts/homeScreen.js @@ -9,7 +9,7 @@ var $screen = null; function beforeShow(data) { - + } function afterShow(data) { diff --git a/web/app/assets/javascripts/playbackControls.js b/web/app/assets/javascripts/playbackControls.js index 6308f8c88..1ad2b3aea 100644 --- a/web/app/assets/javascripts/playbackControls.js +++ b/web/app/assets/javascripts/playbackControls.js @@ -298,7 +298,9 @@ } } - monitorPlaybackTimeout = setTimeout(monitorRecordingPlayback, 500); + if (setTimeout) { + monitorPlaybackTimeout = setTimeout(monitorRecordingPlayback, 500); + } } function monitorRecordingPlayback() { diff --git a/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee b/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee index 67e5528f6..679b4f761 100644 --- a/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/MediaControls.js.jsx.coffee @@ -32,10 +32,16 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackStateChanged')) tempos : [ 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 63, 66, 69, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 126, 132, 138, 144, 152, 160, 168, 176, 184, 192, 200, 208 ] onJamTrackStateChanged: (jamTrackState) -> + if window.unloaded + return + @monitorControls(@state.controls, @state.mediaSummary, jamTrackState) @setState({jamTrackState: jamTrackState}) onMediaStateChanged: (changes) -> + if window.unloaded + return + if changes.playbackStateChanged if @state.controls? if changes.playbackState == 'play_start' @@ -51,6 +57,8 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackStateChanged')) @setState({time: changes.time}) onInputsChanged: (sessionMixers) -> + if window.unloaded + return session = sessionMixers.session mixers = sessionMixers.mixers @@ -60,9 +68,16 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackStateChanged')) metro = mixers.metro @monitorControls(@state.controls, mediaSummary, @state.jamTrackState) - @setState({mediaSummary: mediaSummary, metro: metro}) - @updateMetronomeDetails(metro, @state.initializedMetronomeControls) + state = {mediaSummary: mediaSummary, metro: metro} + try + @setState(state) + catch e + logger.error('MediaControls: unable to set state', state, e) + try + @updateMetronomeDetails(metro, @state.initializedMetronomeControls) + catch e + logger.error('MediaControls: unable to update metronome details', e) updateMetronomeDetails: (metro, initializedMetronomeControls) -> logger.debug("MediaControls: setting tempo/sound/cricket", metro) @@ -197,6 +212,8 @@ mixins.push(Reflux.listenTo(JamTrackStore, 'onJamTrackStateChanged')) @updateMetronomeDetails(metro, true) @setState({initializedMetronomeControls: true}) + shouldComponentUpdate:() -> + return !window.unloaded componentDidUpdate: (prevProps, prevState) -> @tryPrepareMetronome(@state.metro) diff --git a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee index 0fd70d0d0..2df3e8cc1 100644 --- a/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/PopupMediaControls.js.jsx.coffee @@ -60,14 +60,25 @@ mixins.push(Reflux.listenTo(UserStore, 'onUserChanged')) session = sessionMixers.session mixers = sessionMixers.mixers + if @unloaded + #console.log("PopupMediaControls unloaded. ignore onMixersChnaged") + return @setState(@updateFromMixerHelper(mixers, session)) onMediaStateChanged: (changes) -> + if @unloaded + #console.log("PopupMediaControls unloaded. ignore onMixersChnaged") + return + if changes.currentTimeChanged && @root? @setState({time: changes.time}) onJamTrackChanged: (changes) -> + if @unloaded + #console.log("PopupMediaControls unloaded. ignore onMixersChnaged") + return + logger.debug("PopupMediaControls: jamtrack changed", changes) @setState({jamTrackState: changes}) @@ -446,7 +457,7 @@ mixins.push(Reflux.listenTo(UserStore, 'onUserChanged')) `