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':