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')) `
{header} - + {extraControls}
{helpButton} @@ -454,7 +465,12 @@ mixins.push(Reflux.listenTo(UserStore, 'onUserChanged'))
` + windowUnloaded: () -> + logger.debug('PopupMediaControls: window uploaded') + @unloaded = true + window.unloaded = true + SessionActions.closeMedia(false) unless window.DontAutoCloseMedia toggleMyMixes: (e) -> @@ -691,6 +707,10 @@ mixins.push(Reflux.listenTo(UserStore, 'onUserChanged')) @resizeWindow() setTimeout(@resizeWindow, 1000) + shouldComponentUpdate: () -> + console.log("THIS UNLOADED", @unloaded) + return !@unloaded + resizeWindow: () => $container = $('#minimal-container') width = $container.width() diff --git a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee index 0ee8dc023..1d91729d0 100644 --- a/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee +++ b/web/app/assets/javascripts/react-components/SessionMediaTracks.js.jsx.coffee @@ -28,7 +28,7 @@ ChannelGroupIds = context.JK.ChannelGroupIds SessionActions.downloadingJamTrack(false) @setState({downloadJamTrack: null}) - SessionActions.closeMedia(true) + SessionActions.closeMedia.trigger(true) #inputsChangedProcessed: (state) -> diff --git a/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee b/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee index d1886455e..139c3b1d5 100644 --- a/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee +++ b/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee @@ -936,8 +936,9 @@ ConfigureTracksActions = @ConfigureTracksActions updateSessionInfo: (session, force) -> if force == true || @currentTrackChanges < session.track_changes_counter logger.debug("updating current track changes from %o to %o", @currentTrackChanges, session.track_changes_counter) - @currentTrackChanges = session.track_changes_counter; - @sendClientParticipantChanges(@currentSession, session); + @currentTrackChanges = session.track_changes_counter + @sendClientParticipantChanges(@currentSession, session) + logger.debug('update current session') @updateCurrentSession(session); #if(callback != null) { # callback(); @@ -1039,6 +1040,7 @@ ConfigureTracksActions = @ConfigureTracksActions context.jamClient.UpdateSessionInfo({}) #logger.debug("session changed") + logger.debug("issue change") @issueChange() ensureConnected: () -> diff --git a/web/lib/tasks/start.rake b/web/lib/tasks/start.rake index bb08b61d8..399f8fb28 100644 --- a/web/lib/tasks/start.rake +++ b/web/lib/tasks/start.rake @@ -11,7 +11,8 @@ task :all_jobs do ENV['FORK_PER_JOB'] = 'false' ENV['QUEUE'] = ENV['QUEUE'] || '*' - Resque.logger = Rails.logger + #Resque.logger = Logger.new(STDOUT) + #ActiveRecord::Base.logger = Logger.new(STDOUT) Rake::Task['resque:work'].invoke end