diff --git a/web/app/assets/javascripts/react-components/SessionRecordBtn.js.jsx.coffee b/web/app/assets/javascripts/react-components/SessionRecordBtn.js.jsx.coffee
index 4599f504a..8d5b384b3 100644
--- a/web/app/assets/javascripts/react-components/SessionRecordBtn.js.jsx.coffee
+++ b/web/app/assets/javascripts/react-components/SessionRecordBtn.js.jsx.coffee
@@ -11,6 +11,7 @@ AppStore = context.AppStore
onSessionMixerChange: (sessionMixers) ->
console.log("_DEBUG_ SessionRecordBtn onSessionMixerChange", sessionMixers)
@setState({isRecording: sessionMixers.session.isRecording})
+ @setState({isRecordingInitiator: sessionMixers.session.recordingClinetId && sessionMixers.session.recordingClinetId == @app.clientId})
getInitialState: () ->
{childWindow: null, isRecording: false}
@@ -24,7 +25,7 @@ AppStore = context.AppStore
return 'noclose'
handleClick: () ->
- if @state.isRecording
+ if @state.isRecording && @state.isRecordingInitiator
RecordingActions.stopRecording()
else
@openRecording()
@@ -50,12 +51,24 @@ AppStore = context.AppStore
render: () ->
btnStyles = "session-record session-record-btn left"
+
if this.state.isRecording
- btnStyles = btnStyles+' button-orange'
+ if this.state.isRecordingInitiator
+ btnStyles = btnStyles+' button-orange'
+ `
+
+ STOP RECORDING
+ `
+ else
+ btnStyles = btnStyles+' button-grey'
+ `
+
+ RECORDING INPROGRESS
+ `
else
btnStyles = btnStyles+' button-grey'
- `
-
- {this.state.isRecording ? 'STOP RECORDING' : 'RECORD'}
- `
+ `
+
+ RECORD
+ `
})
\ No newline at end of file
diff --git a/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee b/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee
index 247abb3c3..1341ac695 100644
--- a/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee
+++ b/web/app/assets/javascripts/react-components/helpers/SessionHelper.js.coffee
@@ -2,7 +2,7 @@ context = window
@SessionHelper = class SessionHelper
- constructor: (app, session, participantsEverSeen, isRecording, downloadingJamTrack, preppingVstEnable, sessionRules, subscriptionRules) ->
+ constructor: (app, session, participantsEverSeen, isRecording, downloadingJamTrack, preppingVstEnable, sessionRules, subscriptionRules, recordingClinetId) ->
@app = app
@session = session
@participantsEverSeen = participantsEverSeen
@@ -12,6 +12,7 @@ context = window
@isLesson = @session?.lesson_session?
@sessionRules = sessionRules
@subscriptionRules = subscriptionRules
+ @recordingClinetId = recordingClinetId
if @isLesson
@lessonId = @session.lesson_session.id
diff --git a/web/app/assets/javascripts/react-components/stores/RecordingStore.js.jsx.coffee b/web/app/assets/javascripts/react-components/stores/RecordingStore.js.jsx.coffee
index 61cb9fc49..a1d5c8543 100644
--- a/web/app/assets/javascripts/react-components/stores/RecordingStore.js.jsx.coffee
+++ b/web/app/assets/javascripts/react-components/stores/RecordingStore.js.jsx.coffee
@@ -31,6 +31,7 @@ BackendToFrontendFPS = {
$(context.AppStore).on('SessionEnded', @onSessionEnded)
onInitModel: (recordingModel) ->
+ console.log("_DEBUG_ RecordingStore.onInitModel", JSON.stringify(recordingModel) )
@recordingModel = recordingModel
this.trigger({isRecording: @recordingModel.isRecording()})
@@ -106,6 +107,7 @@ BackendToFrontendFPS = {
@mixTransferred = true
onAudioRecordingFormatChanged: (audioFormat) ->
+ logger.debug("_DEBUG_ onAudioRecordingFormatChanged", JSON.stringify(@recordingModel))
this.trigger({audioRecordingFormat: audioFormat, isRecording: @recordingModel.isRecording()})
popupRecordingControls: () ->
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 1c243c4bc..b7826dcb5 100644
--- a/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee
+++ b/web/app/assets/javascripts/react-components/stores/SessionStore.js.coffee
@@ -95,7 +95,7 @@ ConfigureTracksActions = @ConfigureTracksActions
onVideoChanged: (@videoState) ->
issueChange: () ->
- @helper = new context.SessionHelper(@app, @currentSession, @participantsEverSeen, @isRecording, @downloadingJamTrack, @enableVstTimeout?, @sessionRules, @subscriptionRules)
+ @helper = new context.SessionHelper(@app, @currentSession, @participantsEverSeen, @isRecording, @downloadingJamTrack, @enableVstTimeout?, @sessionRules, @subscriptionRules, @recordingClinetId)
this.trigger(@helper)
onWindowBackgrounded: () ->
@@ -735,7 +735,9 @@ ConfigureTracksActions = @ConfigureTracksActions
onRecordingChanged: `async function(details) {
let detail, reason, timeline, title;
logger.debug("SessionStore.onRecordingChanged: " + details.cause);
+ console.log("_DEBUG_ SessionStore.onRecordingChanged: " + JSON.stringify(details));
this.isRecording = details.isRecording;
+ this.recordingClinetId = details.clientId;
switch (details.cause) {
case 'started':